△注意:本文是配合 Ubuntu Server 14.04 LTS 安裝

一般架網站,大都多是一台伺服器對應一個網址,供使用者連線使用,這沒什麼不好,就是把組織要呈現的資訊公告出來,如果想要呈現的資訊比較多,又或者是資訊的種類比較不同,我們會想要把網頁資訊做區分,最簡單的方法是建子資料夾。

假設我們的網址叫www.example.org,對應到apache2伺服器是/var/www/html中的網頁資料,然後我們用資料夾來區分不同種的網頁資料,就在/var/www/html下建資料夾,也許是aaa與bbb,使用者在連網頁時,就是改輸入www.example.org/aaawww.expampleorg/bbb,就可以達成分類的目標了(會看到不同的內容)。

再更進階一點的方式,也就是這一篇的主題virtualhost,還是會使用不同的資料夾區分資料,但是使用者再連線時,是輸入不同的名字做區別;這個方法也適用於將多個不同的站台做合併,比如說,我們本來有www.example.org與forum.example.org兩個網站,分別在不同的網頁伺服器上,但是對外的IP不夠了,我們想要把他們做合併,這樣的情形也可以來使用apache2的virtualhost功能。


▲ 圖一、把兩個站台放在同一個伺服器中

virtualhost的設定在ubuntu的apache2中,是放在000-default.conf裡,打開000-default.conf,就會看到預設的VirtualHost在/var/www/html目錄中,如果你輸入的fqdn在apache中找不到對應的ServerName,那都會跑來用這一個目錄中的網頁做呈現。

● sudo vi /etc/apache2/sites-available/000-default.conf

▲ 圖二、預設的VirtualHost長這個樣子

再來是設定我們要使用的網頁,直接把設定加到000- default.conf的最後面,設定ServerName叫forum.expamle.org(剛情景中說的網頁與目錄),設定使用的目錄在/var/www/forum (我會放在/var/www下,但是不是放到/var/www/html中,以免另一個網站的人可以連入),晚些記得把指定的目錄建起來(mkdir),再把網頁資料丟進去,然後把apache2重啟,這樣事情就辦完八成了


▲ 圖三、新增的virtualhost

● sudo service apache2 restart  #重啟apache2的服務

再來的問題是使用者要怎麼才能用指定的名字,連到我們剛設好的地方呢?當然還是dns啦(可參考網域名稱解析伺服器服務- bind9),這邊我們簡單做練習,可以不用搞這麼大,直接修改本機的hosts資料就可以,windows的hosts放在C:\Windows\System32\drivers\etc下,linux的放在\etc下,加入網址與IP後,就可以看到設定的結果是否正確了。


▲ 圖四、修改用戶端hosts,做連線測試


▲ 圖五、看到預設的網站


▲ 圖六、看到要併入的forum網站,good成功了~

來源:http://download.ithome.com.tw/article/index/id/2344

最後修改日期: 2014-08-01

作者

留言

撰寫回覆或留言