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