Как и у многих из нас, у меня есть сервер apache (2.2.15, плюс патчи) с множеством виртуальных хостов. Конечно, у меня больше, чем IPv4-адресов, поэтому я использую NameVirtualHost для запуска многих из них на одном и том же IPv4-адресе.
Я постоянно пытаюсь сделать все, что делаю, с поддержкой IPv6. Этот сервер теперь имеет маршрутизируемый / 64, что дает мне ужасно много адресов v6, которые можно разбросать. Я пытаюсь найти простой способ сообщить каждому v4-NameVirtualHost, что он также должен работать как VirtualHost с уникальным адресом ipv6. Я действительно, действительно не хочу, чтобы каждый виртуальный хост определялся дважды.
Кто-нибудь знает элегантный способ сделать это? Или сделать что-то сопоставимое, если я вложил в свой вопрос опасно-невежественные предположения?
Самый простой способ - ничего не делать с конфигурацией Apache.
Предполагая, что вы использовали такие директивы, как NameVirtualHost *
и <VirtualHost *:80>
тогда Apache ответит за любой из виртуальных хостов по любому адресу, который он Listen
включен (по умолчанию все возможные адреса).
Если вы не находите приемлемым для Apache отвечать любому виртуальному хосту на любом возможном IPv6-адресе, вам придется отредактировать свой <VirtualHost>
записи, как показано в Ответ @ SanderSteffann.
Я думаю, что что-то вроде этого сработает (отказ от ответственности: это верхняя часть моей головы, я еще не тестировал это):
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...