VirtualHost 是否可以监听公共 IP,而无需在文件中设置它(而是使用环境配置):
<VirtualHost *:80>
ServerName $IP;
# If my server public ip is 123.123.123.123, Apache will automatically replace $IP with this ip.
</VirtualHost>
我问这个问题是因为我将设置多个服务器,并且这样做会更快。
提前致谢。
答案1
通过使用<VirtualHost *:80>
虚拟主机,所有 IP 地址都已可用,因此可能不行。*
如果您要使用以下方式,则应将其替换为要将虚拟主机绑定到的特定 IP 地址基于 IP 的虚拟主机。
这服务器名称应该是完全合格的域名,而不是 IP 地址。
这第一个虚拟主机条目成为默认虚拟主机,并将用于与任何后续 ServerName 或 ServerAlias 指令不匹配的请求,例如对 ip 地址的请求。
您可以使用环境变量在您的 apache 配置中,没有问题。使用环境变量的语法是${VARIABLE-NAME}
。
<VirtualHost ${IP}:80>
ServerName ${HOSTNAME}
</VirtualHost>