Linux

專用伺服器上的多個虛擬主機出現問題。第二個 VH 不會響應,第一個會

  • November 19, 2014

我有兩個虛擬主機設置並使用 a2ensite 啟用。

它是 Ubuntu Server 14.04.1 LTS、Apache2 等。

因此 /etc/apache2/sites-available 中有兩個配置文件,並且它們各自的符號連結在啟用了站點。

問題是只有第一個可以訪問。我正在使用基於名稱的虛擬主機,因此多個域名指向一個專用 IP。當訪問第二個添加的域時,伺服器根本沒有響應,甚至沒有錯誤程式碼。該域確實解析為正確的 IP。訪問第一個域,或者IP直接顯示第一個vhost站點。

這是更改為 example1 和 example2 的兩個配置。

<VirtualHost example1.co.uk:80>
   DocumentRoot "/var/www/example1.co.uk"
   ServerAdmin webmaster@example1.co.uk
   ServerName example1.co.uk
   <Directory "/var/www/example1.co.uk">
       Order allow,deny
       Allow from all
       Allowoverride all
   </Directory>
</VirtualHost>



<VirtualHost example2.com:80>
   DocumentRoot "/var/www/example2.com"
   ServerAdmin webmaster@example2.com
   ServerName example2.com
   <Directory "/var/www/example2.com">
       Order allow,deny
       Allow from all
       Allowoverride all
   </Directory>
</VirtualHost>

我已經在這個問題上工作了幾天並且用盡了我的知識。對我來說,這似乎不是典型的錯誤配置。我希望你能幫忙。謝謝。

感謝您的任何幫助和建議。

這兩個域不會解析到相同的 IP。

[jenny@temeraire ~] $ dig epints.com A

;; QUESTION SECTION:
;epints.com.            IN  A

;; ANSWER SECTION:
epints.com.     300 IN  A   198.23.203.161


[jenny@temeraire ~] $ dig reefbase.co.uk A

;; QUESTION SECTION:
;reefbase.co.uk.            IN  A

;; ANSWER SECTION:
reefbase.co.uk.     300 IN  A   198.23.203.162

這就是為什麼隱藏域名是一件壞事的原因……

如果兩個主機名解析為同一個 IP,Apache 幾乎不可能只響應其中一個。但是,例如過濾反向代理或防火牆可能會阻止包含主機名之一的包。這就是為什麼 telnet 是一個如此有用的工具,因為它以瀏覽器沒有的方式向您顯示通信的每一步。

引用自:https://serverfault.com/questions/645213