博文目錄
一、Httpd服務(wù)的訪問控制
1、客戶機(jī)地址限制
2、用戶授權(quán)限制
二、構(gòu)建虛擬Web主機(jī)
三、配置基于域名的虛擬主機(jī)
四、配置基于IP地址的虛擬主機(jī)
五、配置基于端口號的虛擬主機(jī)公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出鶴峰免費(fèi)做網(wǎng)站回饋大家。
為了更好地控制對網(wǎng)站資源的訪問??梢詾樘囟ǖ木W(wǎng)站目錄添加訪問授權(quán)。主要分為客戶機(jī)地址限制和用戶授權(quán)限制,這兩種訪問控制方式都應(yīng)用于httpd.conf配置文件中的目錄區(qū)域范圍內(nèi)。
通過Require配置項(xiàng),可以根據(jù)主機(jī)的主機(jī)名或IP地址來決定是否允許客戶端訪問。在httpd服務(wù)器的主配置文件的
- Require all granted:表示允許所有主機(jī)訪問。
- Require all denied:表示拒絕所有主機(jī)訪問。
- Require local:表示僅本地主機(jī)訪問。
- Require [not] host <主機(jī)名或域名列表>:表示允許或拒絕指定主機(jī)或域訪問。
- Require [not] ip
:表示允許或拒絕指定IP地址或網(wǎng)段訪問。
定義限制策略時(shí),多個(gè)不帶not的require配置語句之間是或的關(guān)系,即任意一條require配置語句就可以訪問,若即有不帶not的require配置語句,又出現(xiàn)了帶not的require配置語句,則語句之間是與的關(guān)系,即同時(shí)滿足所有require配置語句才可訪問。
具體配置如下:
做一個(gè)策略,僅允許ip地址為192.168.100.101的主機(jī)能夠訪問/usr/local/httpd/htdocs網(wǎng)頁目錄下的內(nèi)容,則策略如下(進(jìn)入網(wǎng)站主配置文件httpd.conf后,在末行模式下輸入/Directory,按回車鍵查找到相應(yīng)的位置):
................
Require ip 192.168.100.101
配置完成重啟服務(wù),192.168.100.101的客戶端就可以訪問了。
反之,需要使用“僅拒絕”的限制策略時(shí),靈活使用Require與Require not配置語句設(shè)置拒絕策略,只禁止一部分主機(jī)訪問。在使用not禁止訪問時(shí)要將其置于
具體配置如下:
................
Require all granted
Require not ip 192.168.100.0/24 192.168.200.0/24
也可以通過以下方式來限制:
................
Deny from 192.168.100.0/24 192.168.200.0/24
基于用戶的訪問控制包含認(rèn)證和授權(quán)兩個(gè)過程,是Apache允許指定用戶使用用戶名和密碼訪問特定資源的一種方式。httpd服務(wù)器支持使用摘要認(rèn)證(Digest)和基本認(rèn)證(Basic)兩種方式。使用摘要認(rèn)證的話需要在編譯http之前添加“--enable-auth-digest”選項(xiàng),但并不是所有的瀏覽器都支持摘要認(rèn)證,所以不推薦使用;而基本認(rèn)證是httpd服務(wù)的基本功能,不需要預(yù)先配置特別的選項(xiàng)。
1)創(chuàng)建用戶認(rèn)證數(shù)據(jù)文件
[root@centos01 ~]# /usr/local/httpd/bin/htpasswd -c /usr/local/httpd/htdocs/.password admin
New password:
Re-type new password:
Adding password for user admin
查看用戶是否添加:
[root@localhost httpd]# cd /usr/local/httpd/
[root@localhost httpd]# cat conf/.password
admin:oVc8B0TaIVv0s
2)修改Apache主配置文件加載身份驗(yàn)證
[root@centos01 ~]# vi /usr/local/httpd/conf/httpd.conf
.......
AuthName "Default"
AuthType Basic
AuthuserFile /usr/local/httpd/htdocs/.password
Require valid-user
3)重啟apache服務(wù)
[root@centos01 ~]# systemctl restart httpd
客戶端訪問會出現(xiàn)提示框,輸入賬戶密碼就可以訪問了,需要注意的是,用戶訪問授權(quán)與主機(jī)訪問控制同時(shí)設(shè)置時(shí),設(shè)置的主機(jī)訪問控制優(yōu)先生效。所以在進(jìn)行用戶授權(quán)限制時(shí),需要刪除掉其中的require語句。要不然,用戶訪問授權(quán)不會生效。
虛擬Web主機(jī)指的是在同一臺服務(wù)器中運(yùn)行多個(gè)Web站點(diǎn),其中的每個(gè)站點(diǎn)實(shí)際上并不獨(dú)立占用整個(gè)服務(wù)器,因此被稱為“虛擬”Web主機(jī)。通過虛擬Web主機(jī)服務(wù)可以充分利用服務(wù)器的硬件資源,從而大大降低網(wǎng)站構(gòu)建及運(yùn)行成本。使用httpd可以非常方便地構(gòu)建虛擬主機(jī)服務(wù)器,只需要運(yùn)行一個(gè)httpd服務(wù)就能夠同時(shí)支撐大量的Web站點(diǎn)。httpd支持的虛擬主機(jī)類型包括一下三種:
- 基于域名:為每個(gè)虛擬主機(jī)使用不同的域名,但是其對應(yīng)的IP地址是相同的。這是使用最為普遍的虛擬Web主機(jī)類型。
基于域名:為每個(gè)虛擬主機(jī)使用不同的域名,但是其對應(yīng)的IP地址是相同的。這是使用最為普遍的虛擬Web主機(jī)類型。- 基于IP地址:為每個(gè)虛擬主機(jī)使用不同的域名,且各自對應(yīng)的IP地址也 不相同。這種方式需要為服務(wù)器配備多個(gè)網(wǎng)絡(luò)接口,因此應(yīng)用并不是非常廣泛。
- 基于端口:為每個(gè)虛擬主機(jī)使用不同的域名,IP地址來區(qū)分不同的站點(diǎn)內(nèi)容,而是使用了不同的TCP端口號,因此用戶在瀏覽不同的虛擬站點(diǎn)時(shí)需要同時(shí)指定端口號才能訪問。
DNS自行搭建,如果有不明白的可以參考博文:CentOS7簡單搭建DNS服務(wù)
下面不在進(jìn)行詳細(xì)的解釋。
[root@centos01 ~]# vi /etc/named.conf
options {
listen-on port 53 { 192.168.100.10;};
directory "/var/named";
allow-query { 192.168.100.0/24; };
};
zone "bdqn.com" IN {
type master;
file "bdqn.com.zone";
};
zone "benet.com" IN {
type master;
file "benet.com.zone";
};
[root@centos01 ~]# vi /var/named/bdqn.com.zone
$TTL 86400
@ SOA bdqn.com. root.bdqn.com(
2019081610
1H
15M
1W
1D
)
@ NS centos01.bdqn.com.
centos01 A 192.168.100.10
www A 192.168.100.10
[root@centos01 ~]# cp /var/named/bdqn.com.zone /var/named/benet.com.zone
[root@centos01 ~]# vi /var/named/benet.com.zone
TTL 86400
@ SOA benet.com. root.benet.com(
2019081610
1H
15M
1W
1D
)
@ NS centos01.benet.com.
centos01 A 192.168.100.10
www A 192.168.100.10
[root@centos01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32
……
DNS1=192.168.100.10
[root@centos01 ~]# systemctl restart network
[root@centos01 ~]# systemctl restart named
為每個(gè)虛擬web主機(jī)準(zhǔn)備網(wǎng)站目錄及網(wǎng)頁文檔。為了方便測試,分別為每個(gè)虛擬web主機(jī)提供包含不同的首頁文件:
[root@centos01 ~]# mkdir -p /var/www/
[root@centos01 ~]# mkdir -p /var/www/bdqn.com
[root@centos01 ~]# mkdir -p /var/www/benet.com
[root@centos01 ~]# echo "www.bdqn.com" > /var/www/bdqn.com/index.html
[root@centos01 ~]# echo "www.benet.com" > /var/www/benet.com/index.html
[root@centos01 ~]# vi /usr/local/httpd/conf/httpd.conf
390 # Virtual hosts
391 Include conf/extra/httpd-vhosts.conf
[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost 192.168.100.10:8
order deny,allow
allow from all
[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
NamevirtualHost www.bdqn.com:80
NamevirtualHost www.benet.com:80
order deny,allow
allow from all
DocumentRoot "/var/www/bdqn.com/"
ServerName www.bdqn.com
ErrorLog "logs/www.bdqn.com.error_log"
CustomLog "logs/www.bdqn.com.access_log" common
DocumentRoot "/var/www/benet.com/"
ServerName www.benet.com
ErrorLog "logs/www.benet.com.error_log"
CustomLog "logs/www.benet.com.access_log" common
[root@centos01 ~]# systemctl restart httpd
1、復(fù)制一個(gè)新的網(wǎng)卡
[root@centos01 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-ens32:1
[root@centos01 network-scripts]# vim ifcfg-ens32:1
......
NAME=ens32:1
DEVICE=ens32:1
ONBOOT=yes
IPADDR=192.168.100.20
NATEMASK=255.255.255.0
DNS1=192.168.100.10
[root@centos01 ~]# systemctl restart network
[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
NamevirtualHost www.bdqn.com:80
NamevirtualHost www.benet.com:80
order deny,allow
allow from all
DocumentRoot "/var/www/bdqn.com/"
ServerName www.bdqn.com
ErrorLog "logs/www.bdqn.com.error_log"
CustomLog "logs/www.bdqn.com.access_log" common
DocumentRoot "/var/www/benet.com/"
ServerName www.benet.com
ErrorLog "logs/www.benet.com.error_log"
CustomLog "logs/www.benet.com.access_log" common
[root@centos01 ~]# systemctl restart httpd
[root@centos01 ~]# vi /usr/local/httpd/conf/httpd.conf
40 Listen 80
41 Listen 8080
[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
NamevirtualHost www.bdqn.com:80
NamevirtualHost www.benet.com:80
order deny,allow
allow from all
DocumentRoot "/var/www/bdqn.com/"
ServerName www.bdqn.com
ErrorLog "logs/www.bdqn.com.error_log"
CustomLog "logs/www.bdqn.com.access_log" common
DocumentRoot "/var/www/benet.com/"
ServerName www.benet.com
ErrorLog "logs/www.benet.com.error_log"
CustomLog "logs/www.benet.com.access_log" common
[root@centos01 ~]# systemctl restart httpd
—————— 本文至此結(jié)束,感謝閱讀 ——————