我正在尝试设置一个带有 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;因此,返回第一个。