萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> 用Apache實現虛擬主機服務

用Apache實現虛擬主機服務

 什麼是虛擬主機服務
所謂的虛擬主機服務就是指將一台機器虛擬成多台WEB服務器。舉個例子來說,一家公司想從事提供主機代管服務,它為其它企業提供WEB服務。那麼它肯定不是為每一家企業都各准備一台物理上的服務器,而是用一台功能較強大的大型服務器,然後用虛擬主機的形式,提供多個企業的WEB服務,雖然所有的WEB服務就是這台服務器提供的,但是讓訪問者看起來卻是在不同的服務器上獲得WEB服務一樣。
具體地說,就是,我們可以利用虛擬主機服務將兩個不同公司www.company1.com與www.company2.com的主頁內容都存放在同一台主機上。而訪問者只需輸入公司的域名就可以訪問到它想得到的主頁內容。
用Apache設置虛擬主機服務通常可以采用兩種方案:基於IP地址的虛擬主機和基於名字的虛擬主機,下面我們分別介紹一下它們的實現方法。以便大家在具體的應用中能夠選擇最合適的實現方法。
設置實現基於IP地址的虛擬主機服務

實現前提
 
這種方式需要在機器上設置IP別名,也就是在一台機器的網卡上綁定多個
IP地址去為多個虛擬主機服務。而且要使用這項功能還要確定在你的LINUX內核中必須支持IP別名的設置,否則你還必須重新編譯內核。
下面舉一個擁有兩個虛擬主機的服務設置,以供參考。
2.配置步驟
假設,我們用來實現虛擬主機服務的機器,首先已經為自己提供了WEB服務,現在將為新的一家公司www.company1.com提供虛擬主機服務。
規劃IP地址:為虛擬主機申請新的IP地址。(假設本機IP地址為202.101.2.1)
 
  Www.company1.com 202.101.2.2

2) 讓ISP作好相應的域名解析工作。
3) 為網卡設置IP別名:
  /sbin/ifconfig eth0:0 202.101.2.2 netmask 255.255.255.0
4) 重新設置“/etc/httpd/conf/httpd.conf”,在文件中加入:

ServerAdmin [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)將相應的主頁內容存放在相應的目錄中即可。
3.不利因素
這種虛擬主機的實現方法有一個嚴重的不足,那就是,每增加一個虛擬主機,就必須增加一個IP地址。而由於IP地址空間已經十分緊張,所以通常情況下是無法取得這麼多的IP地址的。而且從某種意義上說,這也是一種IP地址浪費。
copyright © 萬盛學電腦網 all rights reserved