前言 :
在正常使用的情況下,基本上一個 Apache 就對應一個網域,但是當網域數量多,而又不想分太多主機時,這個時後就可以使用Apache 的 Virtual Host設定。如此一來就可以在一台主機上,使用多網域。簡單說,當有兩個網域分別為 faq-book.com 和 faq-test.tk時,想要指到同一台主機IP時就可使用此設定。
環境 :
Centos 5.7 64位元
Apache 2.2.3
設定 :
Apache 的 Virtual Host 設定方式有很多種。也沒有說那一種設定方式才是正確的,請依照設定者當下的環境去設定就可以了。
以下提供兩種設定方式
方法一 :
1. 修改 httpd.conf
httpd.conf 最後加入以下設定
ServerAdmin : 設定虛擬主機的管理者信箱,不一定要和本機的網站管理者相同
DocumentRoot : 指定虛擬主機的網站主目錄
ServerName : 設定伺服器 Domain Name ,此名稱必須已經註冊
ServerAlias : 設定伺服器網域別名
ErrorLog : 設定error_log所存放的路徑
CustomLog : 設定access_log所存放的路徑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin derek@faq-book.com DocumentRoot "/var/www/vhosts/faq-book.com" ServerName faq-book.com ServerAlias www.faq-book.com ErrorLog "logs/faq-book.com/error_log" CustomLog "logs/faq-book.com/access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin derek@faq-test.tk DocumentRoot "/var/www/vhosts/faq-test.tk " ServerName faq-test.tk ServerAlias www.faq-test.tk ErrorLog "logs/faq-test.tk/error_log" CustomLog "logs/faq-test.tk/access_log" common </VirtualHost> |
2. 重啟服務
1 |
[root@localhost ~]# /etc/init.d/httpd restart |
3. 測試
3.1 先使用nslookup查詢,若是DNS指向設定和Apache都設定正確,可看到此兩個網域的IP都指向到同一個。
3.2 可直接開啟網頁看是否正常。
Note :
1. 若有第三個、第四個或是更多個網域要設定的話,請接在下方設定就可以。
2. 在自行設定的路徑下若沒有相對應的資料夾時請自行建立
方法二 :
1. 設定conf
在設定conf上可選擇是所有網域的設定檔都寫在同一隻conf裡。所有設定的conf檔都是放在 /etc/httpd/conf.d 這個目錄下。
1.1 建立一個 virtual.conf
1 |
[root@localhost ~]# touch /etc/httpd/conf.d/virtual.conf |
1.2 設定 faq-book.com
1 2 3 4 5 6 7 8 9 10 |
[root@localhost ~]# vim /etc/httpd/conf.d/virtual.conf NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin derek@faq-book.com DocumentRoot "/var/www/vhosts/faq-book.com" ServerName faq-book.com ServerAlias www.faq-book.com ErrorLog "logs/faq-book.com/error_log" CustomLog "logs/faq-book.com/access_log" common </VirtualHost> |
1.3 設定faq-test.tk
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[root@localhost ~]# vim /etc/httpd/conf.d/virtual.conf NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin derek@faq-book.com DocumentRoot "/var/www/vhosts/faq-book.com" ServerName faq-book.com ServerAlias www.faq-book.com ErrorLog "logs/faq-book.com/error_log" CustomLog "logs/faq-book.com/access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin derek@faq-test.tk DocumentRoot "/var/www/vhosts/faq-test.tk " ServerName faq-test.tk ServerAlias www.faq-test.tk ErrorLog "logs/faq-test.tk/error_log" CustomLog "logs/faq-test.tk/access_log" common </VirtualHost> |
2. 重啟服務
1 |
[root@localhost ~]# /etc/init.d/httpd/restart |
3. 測試
3.1 先使用nslookup查詢,若是DNS指向設定和Apache都設定正確,可看到此兩個網域的IP都指向到同一個。
3.2 可直接開啟網頁看是否正常。
Note :
1. 若有第三個、第四個或是更多個網域要設定的話,請接在virtual.conf下方設定。
2. 在自行設定的路徑下若沒有相對應的conf時請自行建立
3. 在建立conf時檔名可自行設定,但副檔名必須為 .conf
參考資料 :
評論
此文章尚無評論。