Apache 2.2 默认虚拟主机的 IP 地址

Apache 2.2 默认虚拟主机的 IP 地址

操作系统:CentOS 6.9。 HTTPD 版本 2.2

我有两个 IP 地址,其中一个上有十几个虚拟主机。我需要的是当访问者在浏览器中仅打开 IP 地址时能够切换默认显示的虚拟主机。

目前,我知道实现这一目标的唯一方法是替换虚拟系统,第一个系统默认工作。我正在寻找更好的解决方案。有吗?我需要某种指令,这样我就可以使用脚本切换默认虚拟主机,而不是手动编辑 httpd.conf。

我整个早上都在谷歌上搜索。找到以下信息:

设置ServerAlias my.2nd.ip.addr- 对我不起作用。

设置VirtualHost _default_:80而不是 VirtualHost my.2nd.ip.addr:80- 没有达到预期的效果。

ServerName my.2nd.ip.addr将域设置并添加为ServerAlias- 仍然没有。

任何帮助,将不胜感激。

答案1

正如您所暗示的,通过 IP 地址访问时,默认情况下会打开“第一个虚拟主机”。

棘手的部分是理解 Apache 如何决定哪个是“第一个”;实际上它对活动/启用的虚拟主机进行排序文件名,以及按升序排序的较低/第一个文件名,对应于使用该 IP 地址的虚拟主机获胜,并被选为“第一个”。

因此,无论虚拟主机名称如何,如果您将文件命名为第一个 IP 地址,例如0.conf第二个 IP 地址,这些虚拟主机文件将“获胜”并用作服务器打开时的默认虚拟主机通过IP地址进行浏览。0actualvhostname.conf1.conf

这也是为什么在 Debian 中,默认的 Apache 虚拟主机配置文件被命名为000-default.conf.

vhost文件名更改后还需要重新启动Apache;如:

sudo apache2ctl -k graceful

相关内容