502 Bad Gateway y Discourse version NOT FOUND

He seguido las instrucciones para instalar Discourse en CentOS 7.

Configuré el correo electrónico correctamente y recibí un correo de prueba. Sin embargo, siempre obtengo un error 502 Bad Gateway.

Anteriormente tuve un problema con ssl_stapling que resolví incluyendo el archivo de certificado de la cadena completa.

Veo que la aplicación de Docker está escuchando en el puerto personalizado definido 25654:

0.0.0.0:25654->80/tcp, :::25654->80/tcp

Recibo estos errores de nginx que creo son causados porque la aplicación de Discourse no está escuchando.

connect() failed (111: Connection refused) while connecting to upstream, client: x.x.x.x, server: xxxx, request: “GET / HTTP/2.0”, upstream: “http://x.x.x.x:25654/”, host: “xxxx”

Tengo entradas DNS que apuntan tanto [MI_DOMINIO].net como discourse.[MI_DOMINIO].net a la dirección IP correcta.

¡Bienvenido a la comunidad Meta Discourse :slightly_smiling_face:

A menudo ayudo con problemas de instalación de SSL en la comunidad de Let’s Encrypt. Algo que noté es que tu segundo bloque de servidor carece de la instrucción de escucha IPv6:

listen [::]:443 ssl http2;

Sin eso, no estoy seguro de hacia dónde iría tu tráfico IPv6.

:man_shrugging:

¡Muchas gracias, Jonathan! Esto resolvió el problema de conexión rechazada.

Ahora, cuando intento acceder a mi URL de Discourse, soy redirigido a la página “Bienvenido a CentOS” y tengo el siguiente registro de error.

nginx settings2

Discourse doctor sigue indicando que la versión NO SE ENCONTRÓ.

Veo al usar netstat que tengo dos procesos docker-proxy en el puerto 25654, uno para tcp y otro para tcp6. Me pregunto si esto es un problema, ya que no lo veo en las capturas de pantalla de otros tutoriales.

Dado que CentOS parece requerir una configuración diferente, seguí los ajustes de nginx en este tutorial:

También realicé algunos cambios adicionales en app.yml y en la configuración de nginx que vi en este tutorial, ya que quiero que MYDOMAIN.net y discourse.MYDOMAIN.net se ejecuten en la misma máquina a través de nginx:

Por ejemplo, tengo la plantilla de web socket activada.

Sin embargo, ahora leí en un comentario de ese tutorial que si usas el socket, debes comentar todos los puertos expuestos, aunque según la primera configuración se agregó una entrada para “25654:80” para que escuche el tráfico reenviado al puerto 25654 por nginx.

Disculpas si esto es un problema básico de configuración; el reenvío de puertos, los sockets y la configuración de red en general no son mi fuerte.

Se trata de configuraciones avanzadas. Para quienes no tienen experiencia en la configuración de proxies inversos y la gestión de Docker, recomendamos seguir nuestra Instalación estándar oficial de Discourse, que es la única oficial. Esto asume que se trata de un servidor nuevo y que Discourse es la única aplicación web alojada en él.