Menu

Apache 虛擬功能 - 同一台電腦運行兩個以上的網站

pache的虛擬主機是一種允許在同一台機器上,運行超過一個網站的解決方案。虛擬主機有兩種,一種叫基於IP的(IP-based),另一種叫基於名字的(name-based)。虛擬主機的存在,對用戶來說是透明的。

 

基於IP的虛擬主機:

對於基於IP的虛擬主機來說,必須為每個虛擬主機配備一個單獨的IP。也就是說你的服務器必須有多個IP地址。對於這種方式,我們在本地就可以做一個實驗來進行配置。

配置基於IP的虛擬主機,有兩種方法:一是啟動多個apache伺服程序,每個實例使用單獨的配置文件,一般來說,在同一台機器上,架設兩個網站,這兩個網站互相之間不希望對方訪問自己的文件,就使用這種方式,每個apache實例都是用單獨的用戶名,組來啟動,並且放到不同的目錄下,這種方式只要在apche的配置文件中,為Listen命令配置不同的ip即可;

第二種方法是只啟動一個單一的apache進程,使用VirtualHost指令來為不同的站點,配置不同的值,這種配置方式,我們可以在本地做個試驗的,由於127.0.0.*的所有ip都是指向本機的,所以,我們可以隨便拿兩個出來做實驗,按照如下方式配置apache,之後,在hosts文件中,將域名綁定到配置的ip上,就可以實現在本地運行多個wp系統的一個配置:

<VirtualHost 127.0.0.1:80>
    ServerAdmin yourname@domain.com
    DocumentRoot "E:/sexywp.com/wordpress-latest"
    ServerName wplatest.com
    ServerAlias www.wplatest.com
    ErrorLog "logs/wplatest.com-error.log"
    CustomLog "logs/wplatest.com-access.log" combined
</VirtualHost>

<VirtualHost 127.0.0.2:80>
    ServerAdmin yourname@domain.com
    DocumentRoot "E:/sexywp.com/wordpress-2.9.2"
    ServerName wpstable.com
    ServerAlias www.wpstable.com
    ErrorLog "logs/wpstable.com-error.log"
    CustomLog "logs/wpstable.com-access.log" combined
</VirtualHost>


基於名字的虛擬主機:

基於名字的虛擬主機比起基於IP的來說,配置要更加簡單,它只要依靠客戶端發送的HTTP頭信息中的HOST字段來判斷,服務器到底要服務哪個虛擬 主機。一般情況下,還是比價推薦使用這種方式。因為IP資源日漸稀缺,對於一般用戶來說,為一台服務器購買多個IP也是成本較高的。

使用這種方式配置時,首先是用NameVirtualHost指令,配置次apache實例監聽的IP地址和端口號,然後使用VirtualHost指令來配置不同的虛擬主機,上述的例子,用這種方式配置的話,配置方法如下(注意,在這種方式中,ServerName是必填字段):

NameVirtualHost 127.0.0.1:80

<VirtualHost *:80>
    ServerAdmin yourname@domain.com
    DocumentRoot "E:/sexywp.com/wordpress-latest"
    ServerName wplatest.com
    ServerAlias www.wplatest.com
    ErrorLog "logs/wplatest.com-error.log"
    CustomLog "logs/wplatest.com-access.log" combined
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin yourname@domain.com
    DocumentRoot "E:/sexywp.com/wordpress-2.9.2"
    ServerName wpstable.com
    ServerAlias www.wpstable.com
    ErrorLog "logs/wpstable.com-error.log"
    CustomLog "logs/wpstable.com-access.log" combined
</VirtualHost>

此種配置方法,也可以在本地簡單地進行實驗。

作者:Charles

原文鏈接:Apache虛擬主機