У меня есть сервер с 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-адресу? Кажется, это проблема в разрешении домена.