實現基於FQDN虛擬主機
實現基於FQDN虛擬主機
環境:該實驗的環境是在centos6上進行的,http的版本為2.2
步驟一:安裝http2.2
直接使用yum命令安裝即可
步驟二:在/app目錄下準備好存放網站主頁的目錄
site1,site2,site3分別對應www.a.com,www.b.com, www.c.com的主頁存放目錄位置,同時在三個文件夾中創建對應的主頁文件
步驟三:模擬三個DNS解析
註:該DNS解析是在用來測試的主機上添加的。
步驟四:在/etc/httpd/conf.d目錄下創建新的配置文件
vim/etc/httpd/conf.d/test.conf
NameVirtualHost*:80 (在centos6的http2.2上要啟用基於FQDN的多虛擬主機必須加上這一行,也可以在主配置文件中取消註釋開啟該功能,在http2.4中不需要加這一行)
<virtualhost *:80>
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策略
如果缺少步驟五則會訪問失敗
步驟六:開啟服務
步驟七:測試
可在另外的主機上測試,但是要提前配置/etc/hosts文件
原理解析
DNS如何解析同一個IP的不同域名?
真正訪問的時候http的請求報文中源地址和目標地址都是一樣的,不能區分請求的不同網站,但是在http報文首部中帶有訪問的網址,據此來做出相應的回應,具體如下圖所示:
本文出自 “13145479” 博客,請務必保留此出處http://13155479.blog.51cto.com/13145479/1974884
實現基於FQDN虛擬主機