簡介:這裡說的虛擬主機是指在一台機器上僅運行一個httpd後台程序
支持多個Apache服務器,如在公司財務部門有一台web服務器,名為
account.yourdomain.com,同時又想為sales部門建立網站,網站內容也
放在該機器上,通過sales.yourdomain.com訪問,這就要用到虛擬主機
設置。
設置Apache虛擬主機通常有兩種方案
一、基於IP的虛擬主機
這種方式需要在機器上設置IP別名,象上面的例子,在一台機器的
網卡上綁定多個IP地址去服務多個虛擬主機。
若該機器的IP地址為192.168.11.2(account.yourdomain.com),首先
你要設置IP別名(假設用192.168.11.4作為其別名IP)。加下面的行到
/etc/rc.d/rc.local,確保每次啟動後自動運行。
#/sbin/ifconfig eth0:0 192.168.11.4 netmask 255.255.255.0 broadcast
192.168.11.255 up
#/sbin/route add -host 192.168.11.4 eth0:0
然後你需要設置/etd/httpd/conf/httpd.conf文件:
《VirtualHost 192.168.11.4》*
ServerAdmin [email protected]
DocumentRoot /home/httpd/sales.yourdomain.com
ServerName sales.yourdomain.com
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
《/VirtualHost》
然後分別創建目錄
/home/httpd/sales.yourdomain.com,
/var/log/httpd/sales.yourdomain.com
,放相應的網站內容到目錄/home/httpd/sales.yourdomain.com下即可,並確保
你內部的DNS指定sales.yourdomain.com的A記錄到IP地址192.168.11.4 。
注:這種基於IP的虛擬主機有一個缺點,就是你需要更多的IP地址去服務各自的
虛擬主機,如果你僅僅有一個IP地址,那麼你將可以考慮用基於名字的虛擬主機
方案。
二、基於名字的虛擬主機:
它的優勢就是不需要更多的IP地址,容易配置,不需要其它軟硬件,現代的
浏覽器大多都支持這種方式。與基於IP的虛擬主機一樣,你需要編輯文件
/etc/httpd/conf/httpd.conf
NameVirtualHost 192.168.11.2
《VirtualHost 192.168.11.2》
ServerAdmin [email protected]
DocumentRoot /home/httpd/sales.yourdomain.com
ServerName sales.yourdomain.com
ErrorLog /var/log/httpd/sales.yourdomain.com/error_log
TransferLog /var/log/httpd/sales.yourdomain.com/access_log
《/VirtualHost》
《VirtualHost 192.168.11.2》
ServerAdmin [email protected]
DocumentRoot /home/httpd/hr.yourdomain.com
ServerName hr.yourdomain.com
ErrorLog /var/log/httpd/hr.yourdomain.com/error_log
TransferLog /var/log/hr.yourdomain.com/access_log
《/VirtualHost》
注: 你需要加NameVirtualHost 指示在最前面,下面依次為各個虛擬主機,
為了讓它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS
都指向IP地址192.168.11.2
上面的兩種都將工作,如果是在外部網段,在互聯網上提供WWW服務,你可能
沒有足夠的真實IP地址來支持多個虛擬主機,便可用基於名字的虛擬主機方案,
若是在內部網段上,你有較多的內部保留IP地址,將沒有太大的區別。
Jephe Wu
* 文中的,實際上是“”