Как настроить виртуальный хост Apache для работы с ipv6?

Как настроить виртуальный хост Apache для работы с ipv6?

У меня есть сервер с 1 адресом ipv4 и несколькими адресами ipv6. Один домен перенаправлен на ipv4 A запись. Я настроил apache ports.conf так:

Listen ip.v4.address:80
NameVirtualHost ip.v4.address:80

и файл виртуального хоста:

<VirtualHost ip.v4.address:80>
DocumentRoot /var/www/first/
ServerName first.domain
ServerAlias www.first.domain
ErrorLog ...
CustomLog ...
</VirtualHost>

И все работает отлично.

Теперь я хочу создать новый виртуальный хост для второго домена со вторым IP. Я перенаправил второй домен на запись AAAA ipv6, добавляю в ports.conf:

Listen [ip.v6.address]:80
NameVirtualHost [ip.v6.address]:80

создайте новый файл виртуального хоста:

<VirtualHost [ip.v6.address]:80>
DocumentRoot /var/www/second/
ServerName second.domain
ServerAlias www.second.domain
ErrorLog ...
CustomLog ...
</VirtualHost>

и перезапустить Apache. Ошибок при запуске сервера не было, но он не работает. Когда я ввожу второй домен в браузере, сервер не найден. Когда я ввожу [ip.v6.address]сайт появляется.

Любая помощь?

решение1

Ваша конфигурация Apache выглядит правильной, но немного сложнее, чем нужно, если вы хотите, чтобы один сайт был доступен как по IPv4, так и по IPv6 (двойной стек).

Вместо

<VirtualHost ip.v4.address:80>
...
</VirtualHost>

<VirtualHost [ip.v6.address]:80>
...
</VirtualHost>

ты можешь сделать

<VirtualHost ip.v4.address:80 [ip.v6.address]:80>
...
</VirtualHost>

Таким образом, один виртуальный хост прослушивает оба IP-адреса. Это намного проще в обслуживании!

Если вам действительно нужен другой сайт на IPv6, то ваша конфигурация, конечно, верна.

решение2

Это похоже на ошибку разрешения имени IPv6, а не на ошибку Apache. Проверьте, что имя правильно разрешается в адрес.

решение3

Имя преобразуется в правильный адрес IPv6? Похоже, это проблема в разрешении домена.

Связанный контент