配置 apache 时遇到一个奇怪的问题。
我有 4 个域名
- www.mydomain.tld
www.my-domain.tld
www.anotherdomain.tld
- www.another-domain.tld
我已经为每个域配置了名为虚拟主机。
mydomain.tld、my-domain.tld 和 anotherdomain.tld 工作正常,但 another-domain.tld 工作不正常。
Apache 似乎正在为 anotherdomain.tld 选择虚拟主机并为其提供服务,而不是为 another-domain.tld 提供服务
两者都已正确设置服务器名称
- 服务器名称 anotherdomain.tld
和
- 服务器名称 another-domain.tld
这似乎是唯一可能出现问题的地方。有人对找出此错误的原因有什么建议吗?
其他几点注意事项:每个虚拟主机都在不同的文件中。mydomain.tld 和 my-domain.tld 与 anotherdomain.tld 和 another-domain.tld 位于不同的 IP 地址上。
答案1
您如何知道 Web 服务器正在提供 anotherdomain.tld 而不是 another-domain.tld?您是否看到浏览器地址栏中的 URL 中包含 anotherdomain.tld?
如果你使用复制粘贴技术创建了这些配置,那么你可以保留DocumentRoot 相同对于两个域来说。
另一个猜测是,如果 anotherdomain.tld 和 another-domain.tld 在 apache 中配置在同一个 IP 地址上,但是 another-domain.tlpDNS“A”记录设置为不同的 IP,Apache HTTPD 仅提取其配置中指定的 IP 的默认 VirtualHost,该 IP 可能是 anotherdomain.tld。
示例:如果您的 DNS 中有:
anotherdomain.tld -> 1.2.3.12
another-domain.tld -> 1.2.3.12
然后在httpd.conf中:
<VirtualHost 1.2.3.12:80>
ServerName anotherdomain.tld
...
</VirtualHost
<VirtualHost 1.2.3.18:80>
ServerName another-domain.tld
...
</VirtualHost
当您在浏览器的地址栏中输入时http://another-domain.tld/
,它会向 发出请求1.2.3.12
,从而提取 的默认虚拟主机1.2.3.12
,即anotherdomain.tld
。
但这些只是两个猜测...