Discurso con gestor de proxy inverso

Hola, estoy intentando configurar Discourse con Reverse Proxy Manager en Nginx en una máquina. Todo es accesible a través de mi DNS usando los puertos predeterminados en la máquina, pero cuando lo configuro con un proxy inverso para enrutar el tráfico a través de mi subdominio con SSL forzado, simplemente no funciona. Obtengo un 502. Estoy ejecutando múltiples contenedores. Proxy Manager está aislado y todo lo demás de Discourse en otro. He revisado casi todas las guías que puedo encontrar y nada funciona. ¡Tiene que haber una manera de hacer esto con éxito en 2025! Tengo un sitio funcionando con Proxy Manager y todo eso está en orden. ¿Necesito transferir la red FPM a los contenedores de Discourse, ya que esa es la red predeterminada que Proxy Manager usa para hacer que los contenedores de Discourse sean accesibles para Proxy Manager? Si es así, ¿dónde necesito ir para poner eso, ya que no encuentro ninguna información? La gente dice que lo ponga en sus configuraciones, pero no sé exactamente dónde. ? No quiero tener que cambiar las configuraciones. He visto algunas guías que dicen que no exponga los puertos y deje que Proxy Manager haga el resto, ya lo he hecho. He visto guías que dicen que intente usar plantillas web.socketed.yml en el directorio discourse/templates, pero eso tampoco funciona. He visto a personas que logran esto con y sin exponer puertos en Discourse. Nada parece ser consistente aquí. ¿Qué funciona y qué funciona bien hoy en día? Recuerda, solo estoy ejecutando desde una máquina.

1 me gusta

Mi suposición es que el administrador del proxy está funcionando perfectamente y que el error 502 proviene de Discourse porque no está configurado correctamente.

¿Comentaste las plantillas de Let’s Encrypt y SSL en tu archivo yml?

2 Me gusta

Buenas noticias: nada parece “roto” todavía. Ese 502 fue casi con seguridad una condición de carrera en el primer arranque: Nginx intentó acceder a tu /srv/status antes de que Unicorn estuviera listo. Tus registros muestran:

  • unicorn: run :white_check_mark:
  • Rails arrancó :white_check_mark:
  • Error de Nginx a las 17:34:11 “connection refused” (probablemente antes de que Unicorn terminara)

Vamos a solucionarlo rápidamente.

1) Intenta el estado de nuevo (host → app2)

curl -sSI http://127.0.0.1:8002/srv/status
  1. Si todavía muestra 502, simplemente reinicia Nginx en app2 y prueba desde dentro del contenedor:
docker exec -it app2 bash -lc 'sv restart nginx & && sleep 2 && curl -sSI http://127.0.0.1/srv/status'
curl -sSI http://127.0.0.1:8002/srv/status

Deberías ver HTTP/1.1 200 OK.


Lo he conseguido. Como estoy ejecutando en 2 contenedores de Docker, tuve que permitir el acceso para que se vieran entre sí a través de una red. Discourse no expone ningún puerto, ya que se ejecuta en puertos internos de Docker. Además, es más seguro.

¡Jonnyboy! ¡Los iPhones molan!

1 me gusta

Entonces, ¿eso es lo que te dijo alguna IA? ¿Funcionó?

1 me gusta

sí funcionó, y luego anuncié el resultado en el siguiente tema;