??? 所謂的虛擬主機(jī)服務(wù)就是指將一臺(tái)機(jī)器虛擬成多臺(tái)
WEB服務(wù)器。舉個(gè)例子來(lái)說(shuō),一家公司想從事提供主機(jī)代管服務(wù),它為其它企業(yè)提供WEB服務(wù)。那么它肯定不是為每一家企業(yè)都各準(zhǔn)備一臺(tái)物理上的服務(wù)器,而是用一臺(tái)功能較強(qiáng)大的大型服務(wù)器,然后用虛擬主機(jī)的形式,提供多個(gè)企業(yè)的WEB服務(wù),雖然所有的WEB服務(wù)就是這臺(tái)服務(wù)器提供的,但是讓訪問(wèn)者看起來(lái)卻是在不同的服務(wù)器上獲得WEB服務(wù)一樣。
??? 具體地說(shuō),就是,我們可以利用虛擬主機(jī)服務(wù)將兩個(gè)不同公司www.company1.com與www.company2.com的主頁(yè)內(nèi)容都存放在同一臺(tái)主機(jī)上。而訪問(wèn)者只需輸入公司的域名就可以訪問(wèn)到它想得到的主頁(yè)內(nèi)容。
??? 用
Apache設(shè)置虛擬主機(jī)服務(wù)通??梢圆捎脙煞N方案:基于IP地址的虛擬主機(jī)和基于名字的虛擬主機(jī),下面我們分別介紹一下它們的實(shí)現(xiàn)方法。以便大家在具體的應(yīng)用中能夠選擇最合適的實(shí)現(xiàn)方法。
??? 設(shè)置實(shí)現(xiàn)基于IP地址的虛擬主機(jī)服務(wù)
??? 實(shí)現(xiàn)前提
??? 這種方式需要在機(jī)器上設(shè)置IP別名,也就是在一臺(tái)機(jī)器的網(wǎng)卡上綁定多個(gè)
??? IP地址去為多個(gè)虛擬主機(jī)服務(wù)。而且要使用這項(xiàng)功能還要確定在你的LINUX內(nèi)核中必須支持IP別名的設(shè)置,否則你還必須重新編譯內(nèi)核。
??? 下面舉一個(gè)擁有兩個(gè)虛擬主機(jī)的服務(wù)設(shè)置,以供參考。
??? 2.配置步驟
??? 假設(shè),我們用來(lái)實(shí)現(xiàn)虛擬主機(jī)服務(wù)的機(jī)器,首先已經(jīng)為自己提供了WEB服務(wù),現(xiàn)在將為新的一家公司www.company1.com提供虛擬主機(jī)服務(wù)。
??? 規(guī)劃IP地址:為虛擬主機(jī)申請(qǐng)新的IP地址。(假設(shè)本機(jī)IP地址為202.101.2.1)
Www.company1.com 202.101.2.2
2) 讓ISP作好相應(yīng)的域名解析工作。
3) 為網(wǎng)卡設(shè)置IP別名:
/sbin/ifconfig eth0:0 202.101.2.2 netmask 255.255.255.0
4) 重新設(shè)置"/
etc/httpd/conf/httpd.conf",在文件中加入:
Serve
rAdmin [email protected]DocumentRoot /home/httpd/www.company1.com
ServerName www.company1.com
ErrorLog /var/log/httpd/www.company1.com/error.log
5)建立相應(yīng)的目錄。
mkdir /home/httpd/www.company1.com
mkdir /var/log/httpd/www.company1.com/error.log
6)將相應(yīng)的主頁(yè)內(nèi)容存放在相應(yīng)的目錄中即可。
?? 3.不利因素
這種虛擬主機(jī)的實(shí)現(xiàn)方法有一個(gè)嚴(yán)重的不足,那就是,每增加一個(gè)虛擬主機(jī),就必須增加一個(gè)IP地址。而由于IP地址空間已經(jīng)十分緊張,所以通常情況下是無(wú)法取得這么多的IP地址的。而且從某種意義上說(shuō),這也是一種IP地址浪費(fèi)。
??? 設(shè)置實(shí)現(xiàn)基于名字的虛擬主機(jī)服務(wù)
??? 而基于名字的虛擬主機(jī)服務(wù),是比較適合使用的一種方案。因?yàn)樗恍枰嗟腎P地址,而且配置簡(jiǎn)單,無(wú)須什么特殊的軟硬件支持?,F(xiàn)代的
瀏覽器大都支持這種虛擬主機(jī)的實(shí)現(xiàn)方法。當(dāng)然,這也就是指一些早期的客戶(hù)端瀏覽器也許不支持這種虛擬主機(jī)的實(shí)現(xiàn)方法。
??? 正是以上原因,我們沒(méi)有理由不使用基于名字的虛擬主機(jī)服務(wù)而使用基于IP地址的虛擬主機(jī)服務(wù)。配置基于名字的虛擬主機(jī)服務(wù)需要修改配置文件:"/etc/httpd/conf/httpd.conf",在這個(gè)配置文件中增加以下內(nèi)容。
NameVirtualHost 202.101.2.1
ServerAdmin
[email protected]DocumentRoot /home/httpd/www.company1.com
ServerName www.company1.com
ErrorLog /var/log/httpd/www.company1.com/error.log
ServerAdmin
[email protected]DocumentRoot /home/httpd/www.company2.com
ServerName www.company2.com
ErrorLog /var/log/httpd/www.company2.com/error.log
??? 也就是在基于IP地址的配置基礎(chǔ)上增加一句:NameVirtualHost 202.101.2.1而已。在本例中,為了體現(xiàn)只需要增加一次,所以特別地設(shè)置了兩個(gè)虛擬主機(jī)服務(wù)。
??? 最后也是建立相應(yīng)的目錄,將主頁(yè)內(nèi)容放到相應(yīng)的目錄中去就可以了。