我正在运行带有 Apache 2 的现有 Debian Lenny 安装。我注意到在 /etc/apache2/ports.conf 中有以下指令:
NameVirtualHost *:80
由于服务器上的设置方式(多个 IP 地址,一些负载平衡,一些主机运行 http,其他使用 https),我在 *:80 上没有任何虚拟主机,并且我在另一个文件中有以下行:
NameVirtualHost www.xxx.yyy.zzz:80
其中 www.xxx.yyy.zzz 是我希望这些网站响应的 IP 地址。如果运行 http,每个 VirtualHost 容器都会使用该 IP 地址,而 https 主机对每个主机和端口 443 使用唯一的 IP 地址,因此不需要 NameVirtualHost 指令。由于我没有任何带有 *:80 的虚拟主机,因此当我重新加载/重新启动时,Apache 会抛出以下警告:
[warn] NameVirtualHost *:80 has no VirtualHosts
我想在配置文件中有效地告诉 Apache“如果您已经看到 NameVirtualHost *:80 指令,请忽略它”,该文件稍后会包含在行中(ports.conf 之后)。这可能吗?我知道我可以直接注释掉 ports.conf 中的行,但这意味着要编辑 Debian 提供的文件,我更喜欢将自定义项放在单独的文件中,以避免在 Apache 升级时出现问题,apt 会抛出一条消息说配置已更改。
答案1
通常,默认站点在虚拟主机定义中定义。这将捕获任何未配置的请求。请参阅 /etc/apache2/sites-available/default 以获取示例。这应该符号链接到 /etc/apache2/sites-enabled。
在您的情况下,默认服务器应该不会捕获任何内容,因此您可能需要对其进行设置以显示适当的页面。