【问题标题】:DocumentRoot is set to docRoot of a virtualHost?DocumentRoot 设置为虚拟主机的 docRoot?
【发布时间】:2013-05-07 06:59:42
【问题描述】:

操作系统:centOS 6.3 Final

我已经安装了 mysql 和 apache2(httpd) 软件包并更改了 /etc/httpd/conf/httpd.conf 中的配置,如下所示:

<VirtualHost *:80>
    DocumentRoot /var/www/html/wordpress/
    ServerName www.asterix.int
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/html/staticSite/
    ServerName www.meins.lan
    ServerAlias www.deins.lan
    ServerAlias www.obelix.int
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/html/joomla/
    ServerName www.example.com
    ServerAlias www2.example.com
    ServerAlias www3.example.com
</VirtualHost>

所有 ServerName 和 ServerAlias 都工作正常,我可以访问这 3 个页面。

但是当我试图通过服务器的 ip 访问页面时,会发生一些奇怪的事情(至少对我而言)。 apache2 返回第一个定义的虚拟主机的索引页(在这个例子中是 wordpress)。我已经对所有 3 个虚拟主机进行了尝试,并获得了相同的结果。

这是正常行为还是我做错了什么?

如果这是正常行为:我可以为所有对 ip 的请求设置 DocumentRoot 吗?

谢谢!

【问题讨论】:

    标签: apache2 centos document-root virtual-hosts


    【解决方案1】:

    这是预期的行为。如果您使用 IP(比如说http://123.123.123.123/),Apache 将使用123.123.123.123 作为 HTTP 主机名。由于没有ServerNameServerAlias123.123.123.123 的VirtualHost,所以使用第一个VirtualHost。

    所以如果你想要一个只监听http://123.123.123.123/ 的虚拟主机,你可以简单地创建一个虚拟主机:

    <VirtualHost *:80>
        DocumentRoot /var/www/html/my-ip-site/
        ServerName 123.123.123.123
    </VirtualHost>
    

    【讨论】:

    • 我刚刚找到了有关该文档的条目(httpd.apache.org/docs/2.2/en/vhosts/name-based.html/ - 主主机消失)并添加了一个条目,例如首先是你的。此 VirtualHost 的 DocumentRoot 与全局 DocumentRoot 具有相同的值,并且现在通过服务器的 ip 导航可以正常工作。谢谢你。
    【解决方案2】:

    这是正常行为。 您正在使用一种称为基于名称的虚拟主机的虚拟主机方法。正如您可以想象的那样,这意味着 apache 的“路由”仅由 HTTP 请求中的主机名完成,根据配置中的 ServerName 和 ServerAlias 指令。

    作为对服务器 IP 的请求 - 例如1.2.3.4 - 不能路由到任何已定义的虚拟主机,apache 采用默认虚拟主机。 默认虚拟主机或多或少是定义的第一个虚拟主机。 接受 IP 上的请求,因为您使用了通配符定义 *:80。

    你可以查看apache在apache中设置的虚拟主机

    # command apache2 -S
    

    【讨论】:

      猜你喜欢
      • 2012-03-16
      • 2015-08-24
      • 2016-01-22
      • 2012-10-26
      • 2018-05-04
      • 2013-07-16
      • 2013-03-15
      • 2014-07-15
      • 2014-09-20
      相关资源
      最近更新 更多