IPv4 名称虚拟主机,IPv6 虚拟主机

IPv4 名称虚拟主机,IPv6 虚拟主机

和我们许多人一样,我有一个 Apache 服务器(2.2.15,加上补丁),上面有很多虚拟主机。当然,我的 IPv4 地址比 IPv4 地址还多,这就是为什么我使用 NameVirtualHost 在同一个 IPv4 地址上运行许多虚拟主机。

我正忙着让我所做的一切都启用 IPv6。此服务器现在有一个路由 /64,这给了我一个可怕很多 v6 地址需要处理。我试图找到一种简单的方法来告诉每个 v4-NameVirtualHost,它还应该在唯一的 ipv6 地址上充当 VirtualHost。我真的不想对每个虚拟主机进行两次定义。

有人知道一种优雅的方法来做到这一点吗?或者做一些类似的事情,以防我在问题中嵌入任何危险的无知假设?

答案1

我认为这样的事情会起作用(免责声明:这是我的想法,我还没有测试过):

NameVirtualHost 10.0.0.1:80

<VirtualHost 10.0.0.1:80 [2001:db8::1]:80>
   ServerName blabla
   ...
</VirtualHost>

<VirtualHost 10.0.0.1:80 [2001:db8::2]:80>
   ServerName blabla2
   ...
</VirtualHost>

etc...

答案2

简单的方法是不要对 Apache 配置进行任何操作。

假设您使用了类似的指令NameVirtualHost *<VirtualHost *:80>那么 Apache 将负责其所连接的任何地址上的任何虚拟主机Listen(默认情况下是所有可能的地址)。

如果你认为 Apache 不能接受任何可能的 IPv6 地址上的任何虚拟主机,那么你最终将不得不编辑你的<VirtualHost>条目,如下所示@SanderSteffann 的回答

相关内容