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.