1 頁 (共 1 頁)

VirtualHost虛擬主機的設定

發表於 : 2013-03-18, 21:40
tony
虛擬主機的設定要配合dns的設定,這時只要靠著不同的url網路位置,呈現不同的網站資料,看起來就像是不同的網站,但是他們卻都是同一個主機。若沒有dns可以設定,或者覺得dns設定麻煩的人,也可以利用ip alias的功能,讓你的主機虛擬出多張網路卡,設定成另外一個ip,以我在國小的例子我的一部主機他的ip是163.24.61.140,因為其他需要我就虛擬出163.24.61.150以及163.24.61.151等兩個ip,這時候我的者一台主機便有了三個ip了!這時候三個不同的ip也可以設定成三個不同的網站伺服器主機囉。
所以在網路上我們可以找到資料知道VirtualHost有兩種,一種是Name-Based VirtualHost另外一種是Ip-Based VirtualHost,所謂的Name-Based就是上面提到的利用url來區別虛擬主機,另外一種是利用ip來區別虛擬主機,兩種方式都可以,最大的目的便是,在只有一台主機的狀態之下,能虛擬很多不同的網站,來達到節省經費與管理的目的。

Name-Based的虛擬主機設定

#先讓我們來設定Name-Based的虛擬主機
#若dns是設定好的,那設定的方法非常簡單
#假設我在我的主機要有三個網站,於是一個預設網站另外兩個便要虛擬出來。
#現在要設定虛擬出來的兩個網站,

mkdir /var/www/test1
mkdir /var/www/test2
#建立兩各要放網頁的資料夾

vi /etc/httpd/conf/httpd.conf
#進入apache的設定

<VirtualHost *:80>
ServerName test1.aandd.idv.tw
DocumentRoot /var/www/test1
CustomLog /var/log/httpd/www.test1_log combined
</VirtualHost>
<VirtualHost *:80>
ServerName test2.aandd.idv.tw
DocumentRoot /var/www/test2
CustomLog /var/log/httpd/www.test2_log combined
</VirtualHost>
#只要加入上面兩個區塊的設定,apache馬上新增兩個網站,
#分別是http://test1.aandd.idv.tw與http://test2.aandd.idv.tw
#http://test1.aandd.idv.tw指向的目錄是/var/www/test1
#http://test2.aandd.idv.tw指向的目錄是/var/www/test2

IP-Based的虛擬主機設定

#IP-Based的虛擬主機需要先建立需你的網路卡以及ip

cd /etc/sysconfig/network-scripts
#會看到類似這樣的檔案ifcfg-eth0 ,這就是實體網路卡的設定檔
#現在我們要虛擬出兩張網路卡並分別設定其ip,這裡就以163.24.61.151作為示範

cp -a ifcfg-eth0 ifcfg-eth0:0
#先複製原本的檔案來修改,順便確定複製檔案權限

vi ifcfg-eth0:0
#要編輯ifcfg-eth0:0
#要更改的有以下的項目

DEVICE="eth0:0"
IPADDR=163.24.61.150
NAME="System eth0:0"
PREFIX=25
GATEWAY=163.24.61.250
DNS1=163.24.239.1
NETMASK=255.255.255.128
#請按照您主機的環境修改
#修改完之後重起網路您就會發現您的主機,有兩個ip唷!

vi /etc/httpd/conf/httpd.conf
#接下來進行IP-Based的虛擬主機設定

<VirtualHost 163.24.61.151:80>
ServerName test1.aandd.idv.tw
DocumentRoot /var/www/test1
CustomLog /var/log/httpd/www.test1_log combined
</VirtualHost>
<VirtualHost 163.24.61.152:80>
ServerName test2.aandd.idv.tw
DocumentRoot /var/www/test2
CustomLog /var/log/httpd/www.test2_log combined
</VirtualHost>
#只要加入上面兩個區塊的設定,apache馬上新增兩個網站,
#分別是http://163.24.61.151與http://163.24.61.152
#http://163.24.61.151指向的目錄是/var/www/test1
#http://163.24.61.152指向的目錄是/var/www/test2