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