【发布时间】:2023-03-27 04:03:01
【问题描述】:
我正在尝试使用 Apache 从同一 Ubuntu 服务器托管两个网站。我有一个 IP 地址,而我只有一个域(解析为 IP 地址)。所以我想请求域名给一个网站,请求IP地址给另一个。
我在 /etc/apache2/sites-enabled 中有两个文件的符号链接,指向我的两个站点的配置。
一个包含:
<VirtualHost 1.2.3.4:80>
ServerName 1.2.3.4
stuff
</VirtualHost>
而另一个包含
<VirtualHost domain.net:80>
ServerName domain.net
stuff
</VirtualHost>
但是,当我启动 Apache 时,我收到以下消息:
[warn] VirtualHost 1.2.3.4:80 overlaps with VirtualHost domain.net:80, the first has precedence, perhaps you need a NameVirtualHost directive
当我将浏览器指向 domain.net 或 1.2.3.4 时,我得到了我想要与该 IP 地址关联的站点。
如果我删除任何一个符号链接,那么将浏览器指向域名或 IP 地址都会给出唯一启用的网站。 (如您所愿。)
据我了解,启用站点的两个配置文件都会同时加载,并且包含 IP 地址的配置文件胜过包含域名的配置文件。该警告建议查看 NameVirtualHost 指令,但我可以在网上找到的所有帮助都是指您有两个域名指向同一个 IP 地址的情况。
一如既往,非常感谢您的帮助或建议。
(值得一提的是,这些网站都是 Rails 应用程序,我正在使用Passenger 进行部署,但我认为这在这里并不重要。)
【问题讨论】:
-
仅供参考,此类问题最好在 serverfault.com 上提供
标签: apache