请原谅我的无知,问了这个问题。我花了很长时间才发现如何指定“公共地址”而不是硬编码和 IP 地址。
根据阿帕奇手册绑定地址和端口:
这是如何与虚拟主机一起工作的
Listen 指令不实现虚拟主机 - 它只告诉主服务器要侦听哪些地址和端口。如果不使用指令,服务器将以相同的方式处理所有接受的请求。但是,可用于为一个或多个地址或端口指定不同的行为。要实现 VirtualHost,必须首先告诉服务器侦听要使用的地址和端口。然后应该为指定的地址和端口创建一个部分来设置该虚拟主机的行为。注意,如果设置了服务器没有监听的地址和端口,则无法访问。
该手册给出了如下示例:
Listen 0.0.0.0:80 Listen 192.0.2.1:80
对 IP 地址进行硬编码对我们来说是有问题的,因为托管提供商有时会更改 IP 地址。我们想要一种无需干预就能始终“正常工作”的东西。上次更改时我出差在外,因此该网站关闭了一周多。
我们尝试了如下一些猜测,但导致服务器无法启动:
Listen ${PUBLIC_IP}:80
指定“公共地址”的变量名是什么?
答案1
我认为不存在这样的变量,但你不需要一个 - 只需告诉 Apache 在所有接口上侦听端口 80:
Listen 80
除非您有多个 IP 地址并且您希望 Apache 仅侦听一个子集,否则它将正常工作并适应不断变化的 IP 地址。