首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

Apache 虛擬主機配置全攻略:基於 IP 與主機名稱兩大方案

     編輯:PHP 綜合知識

虛擬主機技術將單一伺服器資源切分為多個獨立「小主機」,各提供 WWW、FTP、Mail 等服務。Apache 為最主流的虛擬主機平台,支援跨平台、易維護、高安全性。本文詳細比較兩種實現方案。

方案一:基於 IP 位址的虛擬主機

每個虛擬主機擁有獨立 IP,透過多網卡或單網卡綁定多 IP 實現。

子方案 1:每個虛擬主機運行獨立 Apache 進程

Listen 80
<VirtualHost 172.16.3.40>
DocumentRoot /www/ghq1
ServerName www.ghq1.com
</VirtualHost>
  • 優點:進程隔離,互不干擾,安全性最高。
  • 缺點:佔用系統資源多(記憶體、CPU)。

子方案 2:多虛擬主機共享單一 Apache 進程

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>
  • 優點:資源佔用較少。
  • 缺點:安全性較低(CGI 執行風險),仍需每站一 IP。

方案二:基於主機名稱的虛擬主機 (Name-based)

單一 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 解析與目錄建立,即可實現多站點共存。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved