有不少平時喜歡鑽研的童鞋會發現,爲何有時候本身訪問某XXse網站時,老是更新IP地址,內容卻與之前同樣。這個時候就要了解虛擬主機的概念了。瞭解這個概念,可以幫助運維同窗,更內涵的隱藏本身的主機,或者讓一臺apache支持多個網站的共同運營。
參考資料:
1 http://httpd.apache.org/docs/2.2/
2《Apache cookbook》
虛擬主機尋址方式
IP地址方式:每臺虛擬主機都有其惟一的IP地址
名稱尋址方式:多臺虛擬主機會以不一樣的名稱在同一IP地址上運行
以名稱尋址的虛擬主機
使用NameVirtualHost *指令以及<VirtualHost>區塊
- ServerName 127.0.0.1
- NameVirtualHost * #表示所設定的主機可在全部的地址上運行
- <VirtualHost *>
- ServerName test1.name #默認的第一個主機會接收未列出虛擬主機的請求
- DocumentRoot "C:/Apache2.2/htdocs/test1"
- </VirutalHost>
- <VirtualHost *>
- ServerName test2.name
- DocumentRoot "C:/Apache2.2/htdocs/test2"
- </VirutalHost>
指定一臺名稱尋址的主機位默認服務器,並在查找不到主機時,轉向默認網頁
- <VirtualHost *>
- ServerName default
- DocumentRoot /www/htdocs
- ErrorDocument 404 /site.html
- </VirutualHost>
對特定主機設置多個名稱
- ServerAlias www.cu.com chinaunix.cu
以IP尋址的虛擬主機
能夠在系統上設定多個IP,而後各自支持某個網站
- ServerName 127.0.0.1
- <VirtualHost 10.0.0.1>
- ServerName test.name
- DocumentRoot "C:/Apache2.2/htdocs/test1"
- </VirtualHost>
- <VirtualHost 10.0.0.2>
- ServerName test2.name
- DocumentRoot "C:/Apache2.2/htdocs/test2"
- </VirutalHost>
創建IP尋址的默認虛擬主機
- <VirtualHost _default_>
- DocumentRoot /www/htdocs
- </VirtualHost>
- #_default_ 創建虛擬主機,處理全部未設定虛擬主機「地址:端口號」的請求
- #_default_ 可與端口號同時使用 _default_:443 會接受443端口號的全部未設定虛擬主機的請求
端口號尋址的虛擬主機
- Listen 8080
- <VirtualHost 10.0.0.1:8080>
- DocumentRoot "C:/Apache2.2/htdocs/test_port8080"
- </VirtualHost>
- Listen 8081
- <VirtualHost 10.0.0.1:8081>
- DocumentRoot "C:/Apache2.2/htdocs/test2_port8081"
- </VirtualHost>
這種用法不常見,由於請求時,很麻煩,須要填入端口號:好比 www.test.com:8080/
在多個地址上顯示相同的網頁內容
- NameVirtualHost 192.168.1.1
- NameVirtualHost 170.1.2.3
- <VirtualHost 192.168.1.1 170.1.2.3>
- DocumentRoot "C:/Apache2.2/htdocs/test"
- </VirtualHost>