實現基於FQDN虛擬主機

實現基於FQDN虛擬主機

環境:該實驗的環境是在centos6上進行的,http的版本爲2.2

步驟一:安裝http2.2

直接使用yum命令安裝即可

5d09caa0b09968f25cca9e9491114245.png

步驟二:在/app目錄下準備好存放網站主頁的目錄

site1,site2,site3分別對應www.a.com,www.b.com, www.c.com的主頁存放目錄位置,同時在三個文件夾中創建對應的主頁文件index.html,並編輯主頁文件

0a303ff9058360767b21381ef7ae6f6c.png

步驟三:模擬三個DNS解析

注:該DNS解析是在用來測試的主機上添加的。

4f2d8f554a83d2248f2d7fef0e6457f7.png

步驟四:在/etc/httpd/conf.d目錄下創建新的配置文件

vim/etc/httpd/conf.d/test.conf

1804b3dda10c44c890376d4aa419f809.png

NameVirtualHost*:80 (在centos6http2.2上要啓用基於FQDN的多虛擬主機必須加上這一行,也可以在主配置文件中取消註釋開啓該功能,在http2.4中不需要加這一行)

<virtualhost *:80> *表示所有的IP地址都可以訪問)

documentroot /app/site1 (表示網站主頁存放的目錄,需要注意的是,要將網址與主頁文件相對應)

servername  www.a.com (區分不同的網站是依靠名字來區分)

errorlog  logs/a.com.errlog (錯誤日誌的存放文件,錯誤日誌的日誌格式不能定製)

customloglogs/a.com.accesslog combined (訪問日誌的存放文件,combined表示日誌的格式,也可以自己定義)

</virtualhost>

 

<virtualhost *:80>

documentroot /app/site2

servername  www.b.com

errorlog  logs/b.com.errlog

customloglogs/b.com.accesslog combined

</virtualhost>

 

<virtualhost *:80>

documentroot /app/site3

servername  www.c.com

errorlog  logs/c.com.errlo

customloglogs/c.com.accesslog combined

</virtualhost>

步驟五:關閉防火牆及SELinux策略

如果缺少步驟五則會訪問失敗

94b5df9d832f5e3315091866f7086985.png

步驟六:開啓服務

fbca8ed672443bedb628928104a90286.png

步驟七:測試

可在另外的主機上測試,但是要提前配置/etc/hosts文件

643080492eb40c98604c93c056d6cc26.png

原理解析

DNS如何解析同一個IP的不同域名?

真正訪問的時候http的請求報文中源地址和目標地址都是一樣的,不能區分請求的不同網站,但是在http報文首部中帶有訪問的網址,據此來做出相應的迴應,具體如下圖所示:

0f7a95904b6d79b23d54e6038656eb24.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章