Назад | Перейти на главную страницу

Как настроить виртуальный хост 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. Я перенаправил второй домен на запись ipv6 AAAA, добавьте в 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] сайт появляется.

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

Конфигурация вашего 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, то ваша конфигурация, конечно, верна.

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

Соответствует ли имя правильному IPv6-адресу? Кажется, это проблема в разрешении домена.