10.5.1 基于IP地址

2023-05-12 10:54 更新

如果一臺(tái)服務(wù)器有多個(gè)IP地址,而且每個(gè)IP地址與服務(wù)器上部署的每個(gè)網(wǎng)站一一對(duì)應(yīng),這樣當(dāng)用戶請(qǐng)求訪問不同的IP地址時(shí),會(huì)訪問到不同網(wǎng)站的頁面資源。而且,每個(gè)網(wǎng)站都有一個(gè)獨(dú)立的IP地址,對(duì)搜索引擎優(yōu)化也大有裨益。因此以這種方式提供虛擬網(wǎng)站主機(jī)功能不僅最常見,也受到了網(wǎng)站站長(zhǎng)的歡迎(尤其是草根站長(zhǎng))。

劉遄老師在第4章和第9章分別講解了用于配置網(wǎng)絡(luò)的兩種方法,大家在實(shí)驗(yàn)中和工作中可隨意選擇。就當(dāng)前的實(shí)驗(yàn)來講,需要配置的IP地址如圖10-13所示。在配置完畢并重啟網(wǎng)卡服務(wù)之后,記得檢查網(wǎng)絡(luò)的連通性,確保三個(gè)IP地址均可正常訪問,如圖10-14所示(這很重要,一定要測(cè)試好,然后再進(jìn)行下一步!)。

圖10-13 使用nmtui命令配置網(wǎng)絡(luò)參數(shù)

第1步:分別在/home/wwwroot中創(chuàng)建用于保存不同網(wǎng)站數(shù)據(jù)的3個(gè)目錄,并向其中分別寫入網(wǎng)站的首頁文件。每個(gè)首頁文件中應(yīng)有明確區(qū)分不同網(wǎng)站內(nèi)容的信息,方便我們稍后能更直觀地檢查效果。

圖10-14 分別檢查3個(gè)IP地址的連通性

[root@linuxprobe ~]# mkdir -p /home/wwwroot/10 [root@linuxprobe ~]# mkdir -p /home/wwwroot/20 [root@linuxprobe ~]# mkdir -p /home/wwwroot/30 [root@linuxprobe ~]# echo "IP:192.168.10.10" > /home/wwwroot/10/index.html [root@linuxprobe ~]# echo "IP:192.168.10.20" > /home/wwwroot/20/index.html [root@linuxprobe ~]# echo "IP:192.168.10.30" > /home/wwwroot/30/index.html 第2步:在httpd服務(wù)的配置文件中大約113行處開始,分別追加寫入三個(gè)基于IP地址的虛擬主機(jī)網(wǎng)站參數(shù),然后保存并退出。記得需要重啟httpd服務(wù),這些配置才生效。

    [root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf
    ………………省略部分輸出信息………………
    113 <VirtualHost 192.168.10.10>
    114 DocumentRoot /home/wwwroot/10
    115 ServerName www.linuxprobe.com
    116 <Directory /home/wwwroot/10 >
    117 AllowOverride None
    118 Require all granted
    119 </Directory>
    120 </VirtualHost>
    121 <VirtualHost 192.168.10.20>
    122 DocumentRoot /home/wwwroot/20
    123 ServerName bbs.linuxprobe.com
    124 <Directory /home/wwwroot/20 >
    125 AllowOverride None
    126 Require all granted
    127 </Directory>
    128 </VirtualHost>
    129 <VirtualHost 192.168.10.30>
    130 DocumentRoot /home/wwwroot/30
    131 ServerName tech.linuxprobe.com
    132 <Directory /home/wwwroot/30 >
    133 AllowOverride None
    134 Require all granted
    135 </Directory>
    136 </VirtualHost>
    ………………省略部分輸出信息………………
    [root@linuxprobe ~]# systemctl restart httpd

第3步:此時(shí)訪問網(wǎng)站,則會(huì)看到httpd服務(wù)程序的默認(rèn)首頁面。大家現(xiàn)在應(yīng)該立刻就反應(yīng)過來—這是SELinux在搗鬼。由于當(dāng)前的/home/wwwroot目錄及里面的網(wǎng)站數(shù)據(jù)目錄的SELinux安全上下文與網(wǎng)站服務(wù)不吻合,因此httpd服務(wù)程序無法獲取到這些網(wǎng)站數(shù)據(jù)目錄。我們需要手動(dòng)把新的網(wǎng)站數(shù)據(jù)目錄的SELinux安全上下文設(shè)置正確(見前文的實(shí)驗(yàn)),并使用restorecon命令讓新設(shè)置的SELinux安全上下文立即生效,這樣就可以立即看到網(wǎng)站的訪問效果了,如圖10-15所示。

    [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
    [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
    [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*
    [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20
    [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20/*
    [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30
    [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30/*
    [root@linuxprobe ~]# restorecon -Rv /home/wwwroot
    restorecon reset /home/wwwroot context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
    restorecon reset /home/wwwroot/10 context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
    restorecon reset /home/wwwroot/10/index.html context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
    restorecon reset /home/wwwroot/20 context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
    restorecon reset /home/wwwroot/20/index.html context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
    restorecon reset /home/wwwroot/30 context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
    restorecon reset /home/wwwroot/30/index.html context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
    [root@linuxprobe ~]# firefox

圖10-15 基于不同的IP地址訪問虛擬主機(jī)網(wǎng)站

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)