首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有一个IP vhost的Apache 2多个命名虚拟主机

带有一个IP vhost的Apache 2多个命名虚拟主机
EN

Server Fault用户
提问于 2013-10-31 10:05:21
回答 2查看 204关注 0票数 2

我有一个运行在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的相关行:

代码语言:javascript
复制
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>

如果我试图进入:

代码语言:javascript
复制
http://9.9.9.9

我把页面放在/var/www/html/vh/domain1.com下面,而不是托管在/var/www/html中的页面。

我做错了什么?

提前行动!

EN

回答 2

Server Fault用户

回答已采纳

发布于 2013-10-31 12:48:49

NameVirtualHost<VirtualHost>指令必须匹配。这意味着您必须要么更改

代码语言:javascript
复制
NameVirtualHost *:80

代码语言:javascript
复制
NameVirtualHost 9.9.9.9:80

否则就改变每一个

代码语言:javascript
复制
<VirtualHost 9.9.9.9:80>

代码语言:javascript
复制
<VirtualHost *:80>

另外,我建议默认的虚拟主机使用服务器的实际主机名为ServerName,而不是IP地址。因为它是默认的,所以当您只使用IP地址进行连接时,仍然会选择它。

票数 2
EN

Server Fault用户

发布于 2013-10-31 11:47:17

您可以检查Apache如何使用命令apache2ctl -S解释您的配置。它列出了apache当前使用的所有vhost及其顺序。当使用IP地址访问服务器时,将使用该列表中的默认服务器。您可以加载使用的其他vhost配置。

另外,ServerName应该是您服务器的完全限定域名,而不是IP地址。若要查看当前完全限定的域名,请使用hostname --fqdn

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/549846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档