Nginx n'écoute pas sur IPv6 si HTTPS n'est pas utilisé

J’ai configuré un serveur de test sur un réseau interne (inaccessible de l’extérieur, donc impossible de configurer Let’s Encrypt), et j’ai constaté que Nginx n’écoute pas sur IPv6 alors que le serveur possède une adresse IPv6. Le fichier /etc/nginx/conf.d/discourse.conf à l’intérieur du conteneur affiche listen 80; mais pas listen [::]:80;.

J’ai un autre serveur de production qui est normalement accessible en IPv6. Et j’ai cherché sur Meta pour trouver ce qui n’allait pas avec la configuration de mon serveur de test. Finalement, j’ai découvert que ce n’est qu’en ajoutant web.letsencrypt.ssl.template.yml et web.ssl.template.yml à mon app.yml que je peux utiliser l’IPv6 normalement. La raison est que ces fichiers ajoutent listen [::]:80; et listen [::]:443 ssl http2; dans le fichier de configuration Nginx.

L’équipe peut ajouter la prise en charge d’IPv6 pour les installations non-HTTPS, c’est-à-dire ajouter listen [::]:80; à web.template.yml.

Discourse ne fonctionne généralement pas sans HTTPS. Ils n’ajouteront peut-être pas la fonctionnalité que vous demandez. Mais vous pouvez examiner le modèle SSL pour voir ce qui est inclus pour activer IPv6 et ajouter ce code à votre propre modèle ou à app.yml.

1 « J'aime »

Oui, j’ai essayé d’ajouter à app.yml comme ceci et cela fonctionne.

hooks:
  after_web_config:
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: /listen.+$/
        to: |
          listen 80;
          listen [::]:80;
2 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.