1. 程式人生 > >記我的一次配置Apache伺服器的域名解析和泛域名解析過程

記我的一次配置Apache伺服器的域名解析和泛域名解析過程

配置apache的多域名解析,需要用到下面的東西:

  1. C:\WINDOWS\system32\drivers\etc\hosts   (DNS域名解析的檔案)
  2. Apache2.2.11\conf\httpd.conf
  3. Apache2.2.11\conf\extra\httpd-vhosts.conf

上面的檔案的用處後面會提到,先講講基本情況,客戶有兩個域名:

這兩個域名要繫結某伺服器上兩個網站,假設目錄為:

首先在apache的httpd.conf中將虛擬主機模組開啟,就是將前面的#號去掉:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

然後引入虛擬主機配置模組:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

然後在httpd-vhosts.conf中寫入以下內容:

NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#


<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "D:/htdocs/yeboots.com"
    ServerName *.yeboots.com
    ErrorLog "logs/yeboots.com-error.log"
    CustomLog "logs/yeboots.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "D:/htdocs/yecsc.com"
    ServerName yecsc.com
    ServerAlias *.yecsc.com


    ErrorLog "logs/yecsc.com-error.log"
    CustomLog "logs/yecsc.com-access.log" common
</VirtualHost>

便實現了多域名指向伺服器不同目錄。其中紅色部分是實現泛域名解析的方法。

注意點:

  1. 注意HOST檔案中的任意一項,都可能影響到你除錯本地的DNS和域名。
  2. ServerName項對應的內容是網站的域名,即yecsc.com,而www.yecsc.com只是泛域名的其中一種。只需要在ServerAlias中設定*.yecsc.com即可。
  3. 注意檢視每一個域名訪問對應的access.log檔案,可以檢視域名被訪問的情況來除錯。
  4. 要確定使用者已經進行了域名與IP的繫結!
  5. 網站不可能訪問網站根目錄的上級目錄中的內容。
  6. 調整本地HOST檔案之後,可以通過ping域名的方法來檢視本地DNS是否已經起效。
  7. 如果通過HOST,httpd.conf和httpd-vhosts.conf三者進行除錯之後,仍然有錯誤的話,一定是這三者某一環節出了問題,而不是任何詭異的其他問題。

 推薦網址:

其中有一個問題好長時間沒有調試出來,最後找到的原因,就是下圖中的第二行:

<!--StartFragment --> 

註釋掉之後,兩個網站終於可以各自訪問各自的目錄了。

所以要非常注意本機HOST檔案中對localhost的配置,否則會出莫名奇妙的狀況。