Comment configurer apache virtualhost pour fonctionner avec ipv6?

10

J'ai un serveur avec 1 adresse ipv4 et quelques adresses ipv6. Un domaine est redirigé vers ipv4 Un enregistrement que j'ai configuré apache ports.conf comme ceci:

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

et fichier virtualhost:

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

Et tout fonctionne bien.

Maintenant, je veux créer un nouvel hôte virtuel pour le deuxième domaine avec la deuxième IP. J'ai redirigé le deuxième domaine vers l'enregistrement ipv6 AAAA, ajoutez-le à ports.conf:

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

créer un nouveau fichier virtualhost:

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

et redémarrez Apache. Il n'y a eu aucune erreur au démarrage du serveur mais cela ne fonctionne pas. Lorsque j'entre un deuxième domaine dans le navigateur, le serveur est introuvable. Lorsque j'entre sur le [ip.v6.address]site apparaît.

De l'aide?

sheldy
la source
Merci pour votre aide à tous. IPv6 est correct et j'ai besoin de deux sites différents. J'ai contacté mon fournisseur de domaine où j'ai configuré cet enregistrement AAAA. Ils ont dit que cela peut prendre 24h pour l'installer et c'est peut-être là le problème. Lorsque j'ai créé un enregistrement A, l'effet a été presque immédiat et j'ai pensé que l'AAAA fonctionne de la même manière.
sheldy
Ce serait bien si vous marquiez votre réponse préférée comme telle, afin que les personnes qui ont essayé de vous aider obtiennent une récompense pour le faire ;-)
Sander Steffann

Réponses:

12

Votre configuration apache semble correcte, mais un peu plus complexe qu'elle ne devrait l'être si vous voulez qu'un site soit accessible sur IPv4 et IPv6 (double pile).

Au lieu de

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

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

tu peux faire

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

De cette façon, les hôtes virtuels uniques écoutent sur les deux adresses IP. C'est beaucoup plus facile à entretenir!

Si vous voulez vraiment un site différent sur IPv6, votre configuration est bien sûr correcte.

Sander Steffann
la source
2
Ou peut-être <VirtualHost *: 80>?
Koos van den Hout
2
Cela pourrait certainement fonctionner aussi, mais comme il a explicitement spécifié les adresses IP dans son exemple, je l'ai fait également. Si vous ne vous souciez pas vraiment de l'adresse IP et que vous voulez simplement tout faire par l'en-tête Host: alors votre solution est beaucoup plus facile. Attention cependant aux sites SSL / TLS. Vous devez vous assurer que l'indication de nom de serveur (TLS / SNI) fonctionne pour votre base d'utilisateurs.
Sander Steffann
4

Cela ressemble à une erreur de résolution de nom IPv6 plutôt qu'à une erreur Apache. Vérifiez que le nom se résout correctement à l'adresse.

user9517
la source
3

Le nom se résout-il à l'adresse IPv6 correcte? Cela semble être un problème dans la résolution de domaine.

Martin Vejmelka
la source