用Apache實現虛擬機器主機服務

來源:互聯網
上載者:User
apache|虛擬機器主機 六、用Apache實現虛擬機器主機服務

6.1 什麼是虛擬機器主機服務

所謂的虛擬機器主機服務就是指將一台機器虛擬成多台WEB伺服器。舉個例子來說,一家公司想從事提供主機代管服務,它為其它企業提供WEB服務。那麼它肯定不是為每一家企業都各準備一台物理上的伺服器,而是用一台功能較強大的大型伺服器,然後用虛擬機器主機的形式,提供多個企業的WEB服務,雖然所有的WEB服務就是這台伺服器提供的,但是讓訪問者看起來卻是在不同的伺服器上獲得WEB服務一樣。

具體地說,就是,我們可以利用虛擬機器主機服務將兩個不同公司www.company1.com與www.company2.com的首頁內容都存放在同一台主機上。而訪問者只需輸入公司的網域名稱就可以訪問到它想得到的首頁內容。

用Apache設定虛擬機器主機服務通常可以採用兩種方案:基於IP地址的虛擬機器主機和基於名字的虛擬機器主機,下面我們分別介紹一下它們的實現方法。以便大家在具體的應用中能夠選擇最合適的實現方法。

6.2 設定實現基於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”,在檔案中加入:

  <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)建立相應的目錄。

  mkdir /home/httpd/www.company1.com

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



 

6)將相應的首頁內容存放在相應的目錄中即可。

3.不利因素

這種虛擬機器主機的實現方法有一個嚴重的不足,那就是,每增加一個虛擬機器主機,就必須增加一個IP地址。而由於IP地址空間已經十分緊張,所以通常情況下是無法取得這麼多的IP地址的。而且從某種意義上說,這也是一種IP地址浪費。

6.3 設定實現基於名字的虛擬機器主機服務

而基於名字的虛擬機器主機服務,是比較適合使用的一種方案。因為它不需要更多的IP地址,而且配置簡單,無須什麼特殊的軟硬體支援。現代的瀏覽器大都支援這種虛擬機器主機的實現方法。當然,這也就是指一些早期的用戶端瀏覽器也許不支援這種虛擬機器主機的實現方法。

正是以上原因,我們沒有理由不使用基於名字的虛擬機器主機服務而使用基於IP地址的虛擬機器主機服務。配置基於名字的虛擬機器主機服務需要修改設定檔:“/etc/httpd/conf/httpd.conf”,在這個設定檔中增加以下內容。

  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地址的配置基礎上增加一句:NameVirtualHost 202.101.2.1而已。在本例中,為了體現只需要增加一次,所以特別地設定了兩個虛擬機器主機服務。

最後也是建立相應的目錄,將首頁內容放到相應的目錄中去就可以了。


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。