我有两个虚拟主机设置,并使用a2ensite启用。
它是Ubuntu服务器14.04.1 LTS,Apache2等
因此,在/ etc / apache2 / sites-available中有两个configuration文件,并且在启用了站点的地方有相应的符号链接。
问题是只有第一个可以访问。 我使用基于名称的虚拟主机,所以多个域名指向一个专用的IP。 当第二个添加的域被访问时,根本没有来自服务器的响应,甚至没有错误代码。 该域确实parsing为正确的IP。 访问第一个域,或IP直接显示第一个虚拟主机站点。
以下是两个configuration更改为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>
我一直在这个问题上工作了好几天,耗尽了我的知识。 这似乎不是一个典型的错误configuration给我。 我希望你能帮上忙。 谢谢。
感谢您的任何帮助和build议。
这两个域不parsing为相同的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
这就是为什么隐藏域名是一件坏事…
如果这两个主机名parsing为相同的IP,那么对于Apache来说,仅仅对其中的一个进行响应是不可能的。 但是,如果过滤反向代理或防火墙阻止包含其中一个主机名的程序包, 这就是为什么telnet是一个非常有用的工具,因为它以浏览器不显示的方式显示了通讯的每一步。
您必须添加NameVirtualHost指令才能在相同的IP地址上运行多个虚拟主机。 在VirtualHost开始之前添加下面的行。
NameVirtualHost *:80