IPv4 NameVirtualHost, IPv6 VirtualHost

MadHatter asked:

Like many of us, I have an apache server (2.2.15, plus patches) with a lot of virtual hosts on it. More than I have IPv4 addresses, to be sure, which is why I use NameVirtualHost to run lots of them on the same IPv4 address.

I’m busily trying to get everything I do IPv6-enabled. This server now has a routed /64, which gives me an awful lot of v6 addresses to throw around. What I’m trying to find is a simple way to tell each v4-NameVirtualHost that it should also function as a VirtualHost on a unique ipv6 address. I really, really don’t want to have to define each virtual host twice.

Does anyone know of an elegant way to do this? Or to do something comparable, in case I’ve embedded any dangerously-ignorant assumptions in my question?

My answer:

The easy way is to do nothing to your Apache configuration.

Assuming you used directives like NameVirtualHost * and <VirtualHost *:80> then Apache will answer for any of the virtual hosts on any address it’s Listening on (all possible addresses, by default).

If you don’t find it acceptable for Apache to answer any virtual host on any possible IPv6 address, then you’ll end up having to edit your <VirtualHost> entries as shown in @SanderSteffann’s answer.

View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.