IPv4 NameVirtualHost,IPv6 VirtualHost

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

我忙着试图让我所做的一切都支持IPv6。 这个服务器现在有一个路由/ 64,这让我很多v6地址扔掉。 我试图find的是一个简单的方法来告诉每个v4-NameVirtualHost,它也应该作为一个独特的ipv6地址虚拟主机。 我真的不想每次定义虚拟主机两次。

有谁知道一个优雅的方式来做到这一点? 或者做一些可比较的事情,以防在我的问题中embedded任何危险的无知的假设?

我认为像这样的东西会起作用(免责声明:这是从我的头顶,我还没有testing过):

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... 

简单的方法是不对你的Apacheconfiguration做任何事情。

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

如果你不觉得Apache可以接受任何可能的IPv6地址上的虚拟主机,那么你将不得不编辑你的<VirtualHost>条目,如@ SanderSteffann的答案中所示 。