Nginx no escucha en IPv6 si no usa HTTPS

Configuré un servidor de prueba en una red interna (no se puede acceder desde el exterior, por lo que no se puede configurar let’s encrypt) y descubrí que nginx no escucha en IPv6 cuando el servidor tiene una dirección IPv6. El archivo /etc/nginx/conf.d/discourse.conf dentro del contenedor muestra listen 80; pero no listen [::]:80;.

Tengo otro servidor de producción al que se puede acceder normalmente por IPv6. Y he buscado en meta para encontrar qué está mal con la configuración de mi servidor de prueba. Finalmente, descubrí que solo si agrego web.letsencrypt.ssl.template.yml y web.ssl.template.yml a mi app.yml puedo usar IPv6 normalmente. La razón es que estos archivos agregan listen [::]:80; y listen [::]:443 ssl http2; en el archivo de configuración de nginx.

El equipo puede agregar soporte para IPv6 a instalaciones no HTTPS, es decir, agregar listen [::]:80; a web.template.yml.

Discourse en su mayor parte no funciona sin https. Es posible que no agreguen la función que solicita. Pero puede mirar la plantilla ssl para ver qué se incluye para activar ipv6 y agregar ese código a su propia plantilla o al app.yml.

1 me gusta

Sí, intenté agregarlo a app.yml de esta manera y funciona.

hooks:
  after_web_config:
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: /listen.+$/
        to: |
          listen 80;
          listen [::]:80;
2 Me gusta

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