旺客搬家公司評價網評價第一名,廣獲客戶好評
零負評,用心、專業看得見
清潔公司油漆工程,講究細部修整
防潮粉刷,免費估價!

首頁  •  j2h 論壇 • 程式設計討論     • 

虛擬主機的設定

房東:藍狗
發表時間:2007-02-23


什麼是虛擬主機 (Virtual Host)
所謂的虛擬主機,基本上就是『讓你的一部主機上面,有好多個 "主網頁" 存在,也就是說,硬體實際上只有一部主機,但是由網站網址上來看,則似乎有多部主機存在的樣子!』。 舉個例子來說好了,底下的連結:

學生網站:http://gwa.nyes.tcc.edu.tw

管理網站:http://weba.nyes.tcc.edu.tw

這兩個連結你給他點下去,會發現其實是不同的資料內容,不過,如果你用 dig 之類的軟體來查驗 IP 的話,會發現這兩個網址都指向同一個 IP !怎麼會這樣?沒錯啊!這就是虛擬主機的主要功能! 他可以讓你的多個主機名稱對應到不同的主網頁目錄 (DocumentRoot 參數), 所以看起來會像有多部實際主機的模樣!




[編輯] 架設的大前提
那麼要架設虛擬主機需要什麼咚咚呢?以剛剛網站的結果為例,

我必需要有多個主機名稱對應到同一個 IP 去, 所以說,你必需先擁有多個主機名稱才行。

要如何擁有多個主機名稱?那就是:

向 ISP 申請多個合法的主機名稱,而不自己架設 DNS;

自行設定經過合法授權的 DNS 主機來設定自己所需要的主機名稱。




[編輯] 架設範例練習:
將虛擬主機的設定建立一個新的檔案在 /etc/httpd/conf.d/*.conf 當中,
因為如此一來你的虛擬主機設定檔就可以進行搬移, 修改的時候也不會影響到原有的 httpd.conf 的資料!
而因為 httpd.conf 內有個 Include 的參數將 /etc/httpd/conf.d/*.conf 的檔案都讀入設定檔當中,
所以設定上面就變的很輕便, 備份與升級的時候也比較容易處理嘛!不囉唆,趕緊來實驗一下先!

1. 先建立所需要的目錄:
[root@linux ~]# mkdir /var/www/www
[root@linux ~]# mkdir /var/www/phorum
[root@linux ~]# echo "www.vbird.tsai" > /var/www/www/index.html
[root@linux ~]# echo "phorum.vbird.tsai" > /var/www/phorum/index.html
# 原有的首頁 (/var/www/html) 就不更動了!另建兩個不同的首頁內容,可供測試用。

2. 開始編輯設定檔,這裡用額外的檔案來設定喔!
[root@linux ~]# vi /etc/httpd/conf.d/virtual.conf
# 底下這一行在規定『本機任何介面的 port 80 所指定的虛擬主機』的意思。
NameVirtualHost *:80

# 先針對兩個多出來的可瀏覽目錄進行權限方面的規範啊!

Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all


Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all


# 針對三部主機的 DocumentRoot 進行定!

ServerName linux.vbird.tsai
DocumentRoot /var/www/html


ServerName www.vbird.tsai
DocumentRoot /var/www/www
CustomLog /var/log/httpd/www.access_log combined
# 不同的主頁可以指定不同的登錄檔資訊,這樣比較好 debug 與分析啦!


ServerName phorum.vbird.tsai
DocumentRoot /var/www/phorum


[root@linux ~]# apachectl restart

你要注意的只有幾點:

1.在虛擬主機的設定上還有很多的可用的功能,不過,
最低的限度是需要有 ServerName 及 DocumentRoot 這兩個即可!
2.使用了虛擬主機後,原本的主機名稱 (linux.vbird.tsai) 也要同時寫入虛擬主機的對應中,
否則這個主機名稱可能會不知道被丟到哪裡去喔!
3.在 www.vbird.tsai 這個主機當中多了個 CustomLog ,
表示任何向 www.vbird.tsai 要求資料的記錄都會改寫入 /var/log/httpd/www.access_log
而不是預設的 /var/log/httpd/access_log。
但這個新增的登錄檔必需要加入 logrotate 的管理當中才行喔!否則登錄檔會大到『爆表』

接下來,只要你用戶端的瀏覽器可以找到這三個主機名稱並連線到正確的 IP 去,
你這個 Apache 就可以同時提供三個網站的站址了,很方便吧!^_^。





  • 贊助網站       

    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!
    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務

  • 1 樓住戶:阿龍
    發表時間:2007-02-26

    NameVirtualHost *:80

    ServerName www.test.com.tw
    DocumentRoot /var/www/html/com/



    ServerName test.com.tw
    DocumentRoot /var/www/html/




     共 1 人回應  選擇頁數 【第1 頁】 

    姓名:
    佈告內容:
    其他選項: