¿Cómo configurar apache virtualhost para que funcione con ipv6?

10

Tengo un servidor con 1 dirección ipv4 y con algunas direcciones ipv6. Un dominio se redirige a ipv4 Un registro que configuré apache ports.conf así:

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

y archivo virtualhost:

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

Y todo funciona bien.

Ahora quiero crear un nuevo host virtual para el segundo dominio con la segunda ip. Redirigí el segundo dominio al registro ipv6 AAAA, agregué a ports.conf:

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

crear nuevo archivo virtualhost:

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

y reinicie Apache. No hubo errores al iniciar el servidor, pero no funciona. Cuando ingreso el segundo dominio en el navegador, no se encuentra el servidor. Cuando entro en el [ip.v6.address]sitio aparece.

¿Alguna ayuda?

sheldy
fuente
Gracias por ayudar a todos. IPv6 es correcto y necesito dos sitios diferentes. Me puse en contacto con mi proveedor de dominio donde configuré este registro AAAA. Dijeron que puede tomar 24 horas configurarlo y tal vez este sea el problema. Cuando configuré un registro A, el efecto fue casi inmediato y pensé que AAAA funciona de la misma manera.
sheldy
Sería bueno si marcaras tu respuesta favorita como tal, para que las personas que intentaron ayudarte a obtener alguna recompensa por hacerlo;
Sander Steffann

Respuestas:

12

Su configuración de apache parece correcta, pero un poco más compleja de lo que debe ser si desea que se pueda acceder a un sitio a través de IPv4 e IPv6 (doble pila).

En vez de

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

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

tu puedes hacer

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

De esa manera, los hosts virtuales individuales escuchan en ambas direcciones IP. ¡Es mucho más fácil de mantener!

Si realmente desea un sitio diferente en IPv6, su configuración es correcta, por supuesto.

Sander Steffann
fuente
2
¿O tal vez <VirtualHost *: 80>?
Koos van den Hout
2
Eso ciertamente podría funcionar también, pero dado que él especificó explícitamente las direcciones IP en su ejemplo, yo también lo hice. Si realmente no le importa la dirección IP y solo quiere hacer todo por el encabezado Host: su solución es mucho más fácil. Pero ten cuidado con los sitios SSL / TLS. Debe asegurarse de que la Indicación de nombre del servidor (TLS / SNI) funcione para su base de usuarios.
Sander Steffann
4

Esto suena como un error de resolución de nombre de IPv6 en lugar de un error de Apache. Verifique que el nombre se resuelva correctamente en la dirección.

usuario9517
fuente
3

¿El nombre se resuelve en la dirección IPv6 correcta? Esto parece ser un problema en la resolución de dominio.

Martin Vejmelka
fuente