明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

用Apache完成虛擬主機(jī)服務(wù)

[摘要]六、用Apache實(shí)現(xiàn)虛擬主機(jī)服務(wù)6.1 什么是虛擬主機(jī)服務(wù)所謂的虛擬主機(jī)服務(wù)就是指將一臺(tái)機(jī)器虛擬成多臺(tái)WEB服務(wù)器。舉個(gè)例子來(lái)說(shuō),一家公司想從事提供主機(jī)代管服務(wù),它為其它企業(yè)提供WEB服務(wù)。那么它...
六、用Apache實(shí)現(xiàn)虛擬主機(jī)服務(wù)

6.1 什么是虛擬主機(jī)服務(wù)

所謂的虛擬主機(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)方法。

6.2 設(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”,在文件中加入:

  <VirtualHost 202.101.2.2>

ServerAdmin webmaster@yourdomain.com

DocumentRoot /home/httpd/www.company1.com

ServerName www.company1.com

ErrorLog /var/log/httpd/www.company1.com/error.log

</VirtualHost>



 

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)。

6.3 設(shè)置實(shí)現(xiàn)基于名字的虛擬主機(jī)服務(wù)

而基于名字的虛擬主機(jī)服務(wù),是比較適合使用的一種方案。因?yàn)樗恍枰嗟腎P地址,而且配置簡(jiǎn)單,無(wú)須什么特殊的軟硬件支持,F(xiàn)代的瀏覽器大都支持這種虛擬主機(jī)的實(shí)現(xiàn)方法。當(dāng)然,這也就是指一些早期的客戶端瀏覽器也許不支持這種虛擬主機(jī)的實(shí)現(xiàn)方法。

正是以上原因,我們沒有理由不使用基于名字的虛擬主機(jī)服務(wù)而使用基于IP地址的虛擬主機(jī)服務(wù)。配置基于名字的虛擬主機(jī)服務(wù)需要修改配置文件:“/etc/httpd/conf/httpd.conf”,在這個(gè)配置文件中增加以下內(nèi)容。

  NameVirtualHost 202.101.2.1

<VirtualHost 202.101.2.1>

ServerAdmin webmaster@yourdomain.com

DocumentRoot /home/httpd/www.company1.com

ServerName www.company1.com

ErrorLog /var/log/httpd/www.company1.com/error.log

</VirtualHost>

<VirtualHost 202.101.2.1>

ServerAdmin webmaster@yourdomain.com

DocumentRoot /home/httpd/www.company2.com

ServerName www.company2.com

ErrorLog /var/log/httpd/www.company2.com/error.log

</VirtualHost>



 

也就是在基于IP地址的配置基礎(chǔ)上增加一句:NameVirtualHost 202.101.2.1而已。在本例中,為了體現(xiàn)只需要增加一次,所以特別地設(shè)置了兩個(gè)虛擬主機(jī)服務(wù)。

最后也是建立相應(yīng)的目錄,將主頁(yè)內(nèi)容放到相應(yīng)的目錄中去就可以了。