Apache虛擬主機-解惑篇

    有不少平時喜歡鑽研的童鞋會發現,爲何有時候本身訪問某XXse網站時,老是更新IP地址,內容卻與之前同樣。這個時候就要了解虛擬主機的概念了。瞭解這個概念,可以幫助運維同窗,更內涵的隱藏本身的主機,或者讓一臺apache支持多個網站的共同運營。

參考資料:

1 http://httpd.apache.org/docs/2.2/
2《Apache cookbook

虛擬主機尋址方式


IP地址方式:每臺虛擬主機都有其惟一的IP地址
名稱尋址方式:多臺虛擬主機會以不一樣的名稱在同一IP地址上運行



 以名稱尋址的虛擬主機
使用NameVirtualHost *指令以及<VirtualHost>區塊

  1. ServerName 127.0.0.1
  2. NameVirtualHost * #表示所設定的主機可在全部的地址上運行
  3. <VirtualHost *>
  4.     ServerName test1.name #默認的第一個主機會接收未列出虛擬主機的請求
  5.     DocumentRoot "C:/Apache2.2/htdocs/test1"
  6. </VirutalHost>
  7. <VirtualHost *>
  8.     ServerName test2.name
  9.     DocumentRoot "C:/Apache2.2/htdocs/test2"
  10. </VirutalHost>

指定一臺名稱尋址的主機位默認服務器,並在查找不到主機時,轉向默認網頁

  1. <VirtualHost *>
  2.     ServerName default
  3.     DocumentRoot /www/htdocs
  4.     ErrorDocument 404 /site.html
  5. </VirutualHost>

對特定主機設置多個名稱

  1. ServerAlias www.cu.com chinaunix.cu


以IP尋址的虛擬主機

能夠在系統上設定多個IP,而後各自支持某個網站

  1. ServerName 127.0.0.1
  2. <VirtualHost 10.0.0.1>
  3.     ServerName test.name
  4.     DocumentRoot "C:/Apache2.2/htdocs/test1"
  5. </VirtualHost>
  6. <VirtualHost 10.0.0.2>
  7.     ServerName test2.name
  8.     DocumentRoot "C:/Apache2.2/htdocs/test2"
  9. </VirutalHost>

創建IP尋址的默認虛擬主機

  1. <VirtualHost _default_>
  2.     DocumentRoot /www/htdocs
  3. </VirtualHost>
  4. #_default_ 創建虛擬主機,處理全部未設定虛擬主機「地址:端口號」的請求
  5. #_default_ 可與端口號同時使用 _default_:443 會接受443端口號的全部未設定虛擬主機的請求


端口號尋址的虛擬主機

  1. Listen 8080
  2. <VirtualHost 10.0.0.1:8080>
  3.      DocumentRoot "C:/Apache2.2/htdocs/test_port8080"
  4. </VirtualHost>
  5. Listen 8081
  6. <VirtualHost 10.0.0.1:8081>
  7.      DocumentRoot "C:/Apache2.2/htdocs/test2_port8081"
  8. </VirtualHost>

這種用法不常見,由於請求時,很麻煩,須要填入端口號:好比 www.test.com:8080/


在多個地址上顯示相同的網頁內容

  1. NameVirtualHost 192.168.1.1
  2. NameVirtualHost 170.1.2.3
  3. <VirtualHost 192.168.1.1 170.1.2.3>
  4.     DocumentRoot "C:/Apache2.2/htdocs/test"
  5. </VirtualHost>
相關文章
相關標籤/搜索