如何配置 Apache2,使其即使无法在某个特定 IP 上监听但在其他 IP 上监听成功也能启动?

如何配置 Apache2,使其即使无法在某个特定 IP 上监听但在其他 IP 上监听成功也能启动?

我想要配置 Apache2(在 Ubuntu 14.04 上),使其在启动时启动并监听 127.0.0.1:80 和 192.150.0.1:80。

为此,我有以下几行/etc/apache2/ports.conf

Listen 127.0.0.1:80
Listen 192.168.150.1:80

以及 VirtualHost 指令的开始标记:

<VirtualHost 127.0.0.1:80 192.168.150.1:80> 

经过这些编辑和运行后,一切运行正常sudo apache2ctl restart

但是后者 IP 在启动时未绑定到服务器的活动接口,因此 Apache 无法在下次启动时启动。

我找到了这里

当尝试绑定到主机系统上不存在的 IP 和端口时,apache httpd 将无法启动

如果无法绑定后一个 IP 是问题所在,我希望 Apache 不会自行终止。是否有任何使用 Apache 配置指令的解决方案:

  • 即使第二个地址未绑定到任何接口,也可以在启动时成功启动 Apache。
  • 只需要我打开接口并重新启动 apache 来监听两个地址。

我不想/etc/apache2/ports.conf每次打开界面后都要手动编辑。

答案1

这在多个 IP 上的多个站点的 HA 设置中很常见。这些 IP 在 HA 中的设备之间共享。

简而言之,您不能。如果设备上没有所有 IP,Apache 将无法启动。

我们的答案是将 apache 重启写入故障转移流程,确保在发生故障转移时重新启动 apache 服务。

相关内容