指向同一目录的虚拟主机

指向同一目录的虚拟主机

我正在尝试设置一个带有 Kloxo 和两个虚拟主机的服务器。它们指向相同的 IP,但指向不同的目录。

这是虚拟主机文件的配置。它们位于不同的文件中,并包含在主 httpd.conf 文件中。NameVirtualHost *:80 未注释。

arturas.conf:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /home/.sites/_default/web
    ServerName arturas.duomenucentras.lt:80
    ScriptAlias /cgi-bin/ /home/.sites/_default/cgi-bin/
    ErrorLog /home/.sites/_default/logs/error_log
    TransferLog /home/.sites/_default/logs/access_log
    <Directory /home/.sites/_default/web>
        Options FollowSymLinks
        Options +Includes +ExecCGI
        AllowOverride All
    </Directory>
</VirtualHost>

donkapone.conf:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /home/.sites/donkapone/web
    ServerName www.donkapone.duomenucentras.lt:80
    ServerAlias donkapone.duomenucentras.lt:80
    ScriptAlias /cgi-bin/ /home/.sites/donkapone/cgi-bin
    <Directory /home/.sites/donkapone/web>
        Options FollowSymLinks
        Options +Includes +ExecCGI
        AllowOverride All
    </Directory>
</VirtualHost>

两个网站都显示 Kloxo 默认页面错误。两个子域名在 ping arturas.duomenucentras.lt 时

如果您看到此页面,则表示该服务器上尚未为此域配置 Web。

这可能是由于以下原因造成的:

添加域名后,Kloxo 尚未重新启动 Web 服务器。请等待 Web 服务器重新启动。

域名指向错误的 Kloxo 服务器。Ping 域名并确保 IP 与 admin home -> ipaddresses 中显示的 IP 地址之一匹配

如果你在尝试访问以下 IP 时看到此页面http://192.168.1.1,则表示该 IP 尚未映射到域。转到客户端主页 -> ipaddresses -> ipaddress home -> 域配置并将 IP 映射到域。

将 IP 映射到域后,您必须确保域 ping 回相同的 IP。否则,如果您尝试访问域,您将看到此页面。因此 IP -> domain.com 应该意味着 domain.com ping 到相同的 IP。

我猜这就是问题的根源。

知道它为什么会这样吗?

答案1

这看起来很像标准 Apache 配置,但我从未在 ServerName 行中使用过 :80。

ping 操作正常,因为您使用的是虚拟主机。这意味着它们共享相同的 IP 地址,因此如果您使用查找反向地址的标准 unix ping 命令,则它将仅解析为其中一个名称(通常)。

Apache 不关心反向名称,只关心正向名称。

答案2

:80 不是服务器名称的一部分,我会将其从 ServerName 和 ServerAlias 值中删除。

ping 与您的 HTTP 设置无关,您所看到的实际上是服务器的规范名称,不必担心。

答案3

据大量文献记载,第一个列出的虚拟主机始终是默认虚拟主机当没有其他虚拟主机与 Host: 标头匹配时。

您没有请求第二个 vhost 的 ServerName 或 ServerAlias;因此,返回第一个。

相关内容