虛擬主機技術將單一伺服器資源切分為多個獨立「小主機」,各提供 WWW、FTP、Mail 等服務。Apache 為最主流的虛擬主機平台,支援跨平台、易維護、高安全性。本文詳細比較兩種實現方案。
每個虛擬主機擁有獨立 IP,透過多網卡或單網卡綁定多 IP 實現。
Listen 80
<VirtualHost 172.16.3.40>
DocumentRoot /www/ghq1
ServerName www.ghq1.com
</VirtualHost>
Listen 80
<VirtualHost 172.16.3.40>
DocumentRoot /www/ghq1
ServerName www.ghq1.com
</VirtualHost>
<VirtualHost 172.16.3.50>
DocumentRoot /www/ghq2
ServerName www.ghq2.org
</VirtualHost>
單一 IP 透過 HTTP Host 標頭區分站點,節省 IP 資源,為現代主流做法。配置範例:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /www/site1
</VirtualHost>
<VirtualHost *:80>
ServerName www.site2.com
DocumentRoot /www/site2
</VirtualHost>
同一域名同時在 80 與 8080 端口發布:
Listen 172.16.3.40:80
Listen 172.16.3.40:8080
<VirtualHost 172.16.3.40:80>
DocumentRoot /www/ghq1-80
ServerName www.ghq1.com
</VirtualHost>
<VirtualHost 172.16.3.40:8080>
DocumentRoot /www/ghq1-8080
ServerName www.ghq1.com
</VirtualHost>
Listen:指定監聽 IP:Port,預設 80。DocumentRoot:網站檔案根目錄。ServerName:對外顯示的主機名稱。<VirtualHost>:虛擬主機配置區塊。完成配置後,務必同步完成 DNS 解析與目錄建立,即可實現多站點共存。