我們凡是所說的虛擬主機技能就是將一臺(可能一組)處事器的資源(系統(tǒng)資源、網(wǎng)絡帶寬、存儲空間等)憑據(jù)必然的比例支解成若干臺相對獨立的“小主機”的技能。每一臺這樣的“小主機”在成果上都可以實現(xiàn)WWW、FTP、Mail等根基的Internet處事,就像利用獨立的主機一樣。phpma.com
今朝網(wǎng)站處事器的虛擬主機平臺利用以開放的Apache為最多,其次是微軟的Windows
IIS。Apache具有跨平臺(FreeBSD/Linux/Windows/Solaris/Other
UNIX)、易于維護與最佳安詳性等利益。
Apache是率先支持基于IP虛擬主機的處事器之一。 Apache
1.1及其更新版本同時支持基于IP和基于主機名的虛擬主機,差異的虛擬主機有時會被稱為基于主機(host-based)
或非IP虛擬主機(non-IP virtual hosts)。phpma.com
用Apache配置虛擬主機處事凡是可以回收兩種方案:基于IP地點的虛擬主機和基于主機名字的虛擬主機,下面我們別離先容一下它們的實現(xiàn)要領以及優(yōu)缺點。以便各人在詳細的應用中可以或許選擇最符合的實現(xiàn)要領。phpma.com
一、Apache實現(xiàn)基于IP地點的虛擬主機(每個站點擁有一個獨立IP地點)
利用這種虛擬主機方法,首先要在處事器上為每個虛擬主機單獨配置一個IP地點。這些IP地點可以通過增加多個網(wǎng)卡可能在一個網(wǎng)卡上設立多個IP地點來完成。有了多個IP地點后,可以回收以下兩種方法之一來配置Apache。 phpma.com
1、為每個虛擬主機運行一份Apache
回收這種方法,每一份Apache措施可以以單獨的用戶運行,因此各個虛擬主機之間互不影響。配置這種虛擬主機時,只要為每一份Apache配置一套設置文件就可以了,獨一需要留意的是:必需利用“Listen”語句,強制每一份Apache
僅僅在屬于“本身”的IP地點上吸收處事請求。
利益:各個虛擬主機之間互不滋擾,安詳性高。
缺點:占用系統(tǒng)資源較多。
2、多個虛擬主機共享同一份Apache
回收這種方法,各個虛擬主機共享同一份Apache,因此各個虛擬主機之間有必然的影響,尤其是執(zhí)行CGI措施時,大概會帶來一些嚴重的安詳問題。配置這種虛擬主機時,只要為每一個虛擬主機配置雷同如下的信息即可:
<VirtualHost www.ghq1.com>
DocumentRoot /www/ghq1
…
</VirrualHost>
利益:占用系統(tǒng)資源比上一種方法少。
缺點:安詳性低,每個虛擬主機仍然需要占用一個IP地點。
譬喻處事器一個網(wǎng)卡上綁定有兩個IP地點(172.16.3.40和
172.16.3.50)別離對應域名 www.ghq1.com和www.ghq2.org的處事,設置如下:
處事器設置(apache的設置文件httpd.conf)
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>
設置簡樸說明:“Listen”默認httpd處事會監(jiān)控第80號通信端口, “Listen”選項讓用戶自行指定apache 處事器監(jiān)控的IP地點或通信端口。
“DocumentRoot”:指定apache 處事器存放網(wǎng)頁的根目次;“ServerName”:答允用戶自行配置主機名,這個名稱將被送到長途毗連措施,以代替安裝apache 處事器主機的真實名稱。<VirtualHost IP >和</VirtualHost>組成虛擬主機的語法布局,個中的IP就是我們在處事器上綁定的差異的IP地點,香港云服務器 美國云主機,也可以是IP地點加上通信端標語(見下面的例子)。
假如處事器有兩個IP地點(172.16.3.40和 172.16.3.50)別離對應域名 www.ghq1.com和www.ghq2.org。對每個域名,我們都但愿在80端口和8080端口宣布我們的網(wǎng)站。可以這樣設置:
處事器設置(apache的設置文件httpd.conf)
Listen 172.16.3.40:80
Listen 172.16.3.40:8080
Listen 172.16.3.50:80
Listen 172.16.3.50:8080
<VirtualHost 172.16.3.40:80>
DocumentRoot /www/ghq1-80
ServerName www.ghq1.com
</VirtualHost>