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

Mad*_*ter 4 ipv6 ipv4 apache-2.2

像我们许多人一样,我有一个 apache 服务器(2.2.15,加上补丁),上面有很多虚拟主机。可以肯定的是,我拥有的 IPv4 地址不止于此,这就是为什么我使用 NameVirtualHost 在同一个 IPv4 地址上运行大量它们的原因。

我正忙于让我所做的一切都支持 IPv6。这台服务器现在有一个路由 /64,这让我感觉很糟糕很多V6地址,就可以到处乱扔。我试图找到的是一种告诉每个 v4-NameVirtualHost 它也应该在唯一的 ipv6 地址上充当 VirtualHost 的简单方法。我真的,真的不想定义每个虚拟主机两次。

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

Mic*_*ton 5

简单的方法是不对 Apache 配置做任何事情。

假设您使用了像然后 Apache 之类的指令NameVirtualHost *<VirtualHost *:80>它将回答它所在的任何地址上的任何虚拟主机Listen(默认情况下所有可能的地址)。

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


San*_*ann 5

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

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...
Run Code Online (Sandbox Code Playgroud)