1. 程式人生 > >實現基於FQDN虛擬主機

實現基於FQDN虛擬主機

linux、http

實現基於FQDN虛擬主機

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

步驟一:安裝http2.2

直接使用yum命令安裝即可

技術分享

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

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

index.html,並編輯主頁文件

技術分享

步驟三:模擬三個DNS解析

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

技術分享

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

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

技術分享

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策略

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

技術分享

步驟六:開啟服務

技術分享

步驟七:測試

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

技術分享

原理解析

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

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

技術分享


本文出自 “13145479” 博客,請務必保留此出處http://13155479.blog.51cto.com/13145479/1974884

實現基於FQDN虛擬主機