練習: (1)基于主機名實現三個虛擬主機
(2) 每虛擬主機使用獨立的訪問日志和錯誤日志
(3) 第三個虛擬主機的/admin要進行用戶訪問認證
(4) 在第二個虛擬主機上提供/status;
(5) 在第三個虛擬主機提供路徑別名/bbs,訪問其它文件系統路徑;
(6) 嘗試使用混合類型的虛擬主機:
基于IP,PORT和ServerName
練習2: 使用腳本實現以上功能;
每虛擬使用單獨的配置文件;
腳本可接受參數,參數虛擬主機名稱;
(1)基于主機名實現三個虛擬主機
基于FQDN的虛擬主機不再需要NameVirtualHost指令,其他并沒變化
注意:任意目錄下的頁面只有顯式授權才能被訪問
1,vim /etc/httpd/conf/httpd.conf
找到中心主機,并將其注釋掉
2,創建放置3臺虛擬主機的目錄
mkdir -pv /apps/{a.com,b.net,c.org}/htdocs
3,分別編寫三臺虛擬主機的首頁文件,以為后面驗證
vim /apps/a.com/htdocs/index.html
a
vim /apps/b.net/htdocs/index.html
b
vim /apps/c.org/htdocs/index.html
c
4,編寫基于FQDN的虛擬主機的配置文件
vim /etc/httpd/conf.d/virtualhost.conf
5,檢查語法 httpd -t
Syntax OK
6,重載服務 systemctl reload httpd.service
7,在真機的host文件添加:
10.1.252.172 www.a.com
10.1.252.172 www.b.net
10.1.252.172 www.c.org
8,在centos7中添加
vim /etc/hosts
10.1.252.172 www.a.com
10.1.252.172 www.b.net
10.1.252.172 www.c.org
9,驗證
(2) 每虛擬主機使用獨立的訪問日志和錯誤日志
編輯自定義的虛擬主機配置文件
vim /etc/httpd/conf.d/virtualhost.conf
以下以a為例,在原基礎上添加兩行。b,c方法同樣,記得把b,c的路徑變換
檢查語法 httpd -t
重啟服務 systemctl restart httpd.service
(3) 第三個虛擬主機的/admin要進行用戶訪問認證
將配置文件的c改為
檢查語法 httpd -t
重啟服務 systemctl restart httpd.service
(4) 在第二個虛擬主機上提供/status;
檢查語法 httpd -t
重啟服務 systemctl restart httpd.service
(5) 在第三個虛擬主機提供路徑別名/bbs,訪問其它文件系統路徑;
(6) 嘗試使用混合類型的虛擬主機:
基于IP,PORT和ServerName
示例:不同ip,相同端口。相同ip,不同端口的混合使用
ifconfig eth0:0 10.1.252.171
[root@centos6 conf]# vim /etc/httpd/conf.d/vhosts.conf
刪除Listen 808
<VirtualHost 10.1.252.168:80>
ServerName www.a.com
DocumentRoot "/www/a.com/htdocs"
</VirtualHost>
<VirtualHost 10.1.252.171:80>
ServerName www.b.net
DocumentRoot "/www/b.net/htdocs"
</VirtualHost>
<VirtualHost 10.1.252.168:8080>
ServerName www.c.org
DocumentRoot "/www/c.org/htdocs"
</VirtualHost>
檢查語法:httpd -t
重啟服務:service httpd restart
查看3個端口是否都在監聽:ss -tnl
網站:10.1.125.168 10.1.252.171 10.1.252.168:8080
原創文章,作者:wutianyou,如若轉載,請注明出處:http://www.www58058.com/49713