gpt4 book ai didi

apache - 使用 Apache 为两个网站提供单一域名和单一 IP 地址

转载 作者:行者123 更新时间:2023-12-04 13:29:47 24 4
gpt4 key购买 nike

我正在尝试使用 Apache 从同一 Ubuntu 服务器托管两个网站。我有一个 IP 地址,而我只有一个域(解析为 IP 地址)。所以我想请求域名给一个网站,请求IP地址给另一个。

我在/etc/apache2/sites-enabled 中有两个文件的符号链接(symbolic link),指向我的两个站点的配置。

一个包含:

<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 地址关联的站点。

如果我删除任何一个符号链接(symbolic link),那么将浏览器指向域名或 IP 地址都会给出唯一启用的网站。 (如你所愿。)

据我了解,启用站点的两个配置文件都会同时加载,并且包含 IP 地址的配置文件胜过包含域名的配置文件。该警告建议查看 NameVirtualHost 指令,但我可以在网上找到的所有帮助都是指您有两个域名指向同一个 IP 地址的情况。

一如既往,我们将不胜感激帮助或建议。

(值得一提的是,这些网站都是 Rails 应用程序,我正在使用Passenger 进行部署,但我认为这在这里并不重要。)

最佳答案

我就是这样做的:

NameVirtualHost 1.2.3.4:80

<VirtualHost 1.2.3.4:80>
ServerName localhost
DocumentRoot /var/www/default
</VirtualHost>

<VirtualHost 1.2.3.4:80>
ServerName mydomain.net
DocumentRoot /var/www/mydomain
</VirtualHost>

Apache 为每个请求寻找合适的虚拟主机。如果找不到匹配 ServerName或任何 ServerAliases然后它需要第一个。 ServerName 使用什么并不重要。在第一个 VirtualHost因为如果没有其他 VirtualHosts 将始终使用它匹配。

关于apache - 使用 Apache 为两个网站提供单一域名和单一 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2232205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com