专用服务器上的多个虚拟主机存在问题。第二个 VH 没有响应,第一个有响应

专用服务器上的多个虚拟主机存在问题。第二个 VH 没有响应,第一个有响应

我已经设置了两个虚拟主机并使用 a2ensite 启用了它们。

它是 Ubuntu Server 14.04.1 LTS、Apache2 等。

因此 /etc/apache2/sites-available 中有两个配置文件,而 sites-enabled 中则有它们各自的符号链接。

问题是只有第一个可以访问。我使用的是基于名称的虚拟主机,因此多个域名指向一个专用 IP。当访问第二个添加的域时,服务器根本没有响应,甚至没有错误代码。该域确实解析到正确的 IP。访问第一个域或 IP 直接显示第一个虚拟主机站点。

以下将两个配置更改为 example1 和 example2。

<VirtualHost example1.co.uk:80>
    DocumentRoot "/var/www/example1.co.uk"
    ServerAdmin [email protected]
    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 [email protected]
    ServerName example2.com
    <Directory "/var/www/example2.com">
        Order allow,deny
        Allow from all
        Allowoverride all
    </Directory>
</VirtualHost>

我已经研究这个问题好几天了,耗尽了我的知识。在我看来,这似乎不是一个典型的配置错误。希望你能帮忙。谢谢。

谢谢您的帮助和建议。

答案1

这两个域名不是解析到同一个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 如此有用,因为它以浏览器无法做到的方式向您显示通信的每个步骤。

答案2

您必须添加 NameVirtualHost 指令才能在同一 IP 地址上运行多个 vhost。在 VirtualHost 开始之前添加以下行。

NameVirtualHost *:80

相关内容