我在 Ubuntu 上有一个标准的 apache2 安装,其中添加了 mysite1.com,内容如下:
<VirtualHost mysite1.com:80>
自从添加这个功能以来,当我调用时,http://<external-ip>
我不再获得配置在以下位置的默认 Apache 站点/etc/apache2/sites-enabled/000-default.conf
:
<VirtualHost *:80>
为什么要http://<external-ip>
绑定到 mysite.com??
我希望所有未配置的Host:
标题都达到默认值,并且<external-ip>
在我看来,未配置。
更新:@Daniel Ferradal 提供的解决方案是在全部块<VirtualHost *:80>
并使用ServerName
指令来进行主机名映射。
答案1
https://httpd.apache.org/docs/2.4/vhosts/details.html
当某个地址和端口上首次接收到连接时,服务器会查找所有具有相同 IP 地址和端口的 VirtualHost 定义。
如果地址和端口没有完全匹配,则考虑通配符 (*) 匹配。
通过将您的 VirtualHost 绑定到特定的 IP 地址和端口组合<VirtualHost mysite1.com:80>
(并且您的其他 VirtualHost 块都没有明确地绑定到相同的 IP 地址和端口),它优先于通配符并有效地成为默认 VirtualHost(对于 IP 地址mysite1.com
和端口80
)。