我有一个运行在AWS上的实例,带有一个Apache 2、两个命名域和一个ip。
我设法用这两个域( domain1.com和domain2.com )配置apache。第一个域的docroot指向/var/www/html/vh/domain1.com,第二个域的docroot指向/var/www/html/vh/domain2.com。
这样没问题。
问题是,我想直接在浏览器上使用IP访问/var/www/html。
当我尝试这样做时,我的网站托管在domain1.com上。
我该怎么做??
来自httpd.conf的相关行:
ServerName 9.9.9.9:80
DocumentRoot "/var/www/html"
NameVirtualHost *:80
<VirtualHost 9.9.9.9:80>
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost 9.9.9.9:80>
DocumentRoot /var/www/html/vh/domain1.com
ServerName domain1.com
DirectoryIndex index.php
</VirtualHost>
<VirtualHost 9.9.9.9:80>
DocumentRoot /var/www/html/vh/domain2.com
ServerName domain2.com
DirectoryIndex index.php
</VirtualHost>如果我试图进入:
http://9.9.9.9我把页面放在/var/www/html/vh/domain1.com下面,而不是托管在/var/www/html中的页面。
我做错了什么?
提前行动!
发布于 2013-10-31 12:48:49
NameVirtualHost和<VirtualHost>指令必须匹配。这意味着您必须要么更改
NameVirtualHost *:80至
NameVirtualHost 9.9.9.9:80否则就改变每一个
<VirtualHost 9.9.9.9:80>至
<VirtualHost *:80>另外,我建议默认的虚拟主机使用服务器的实际主机名为ServerName,而不是IP地址。因为它是默认的,所以当您只使用IP地址进行连接时,仍然会选择它。
发布于 2013-10-31 11:47:17
您可以检查Apache如何使用命令apache2ctl -S解释您的配置。它列出了apache当前使用的所有vhost及其顺序。当使用IP地址访问服务器时,将使用该列表中的默认服务器。您可以加载使用的其他vhost配置。
另外,ServerName应该是您服务器的完全限定域名,而不是IP地址。若要查看当前完全限定的域名,请使用hostname --fqdn。
https://serverfault.com/questions/549846
复制相似问题