Hola, equipo de Discourse,
Estoy ejecutando un servidor nginx en mi máquina anfitriona y un contenedor de Discourse bastante estándar en Docker. Básicamente, tengo un pequeño número de carpetas específicas (HTTP) servidas por el nginx del anfitrión, y todo lo demás se reenvía al contenedor de Discourse mediante proxy_pass.
Según mi comprensión del problema, basta con entender que mi archivo de configuración de nginx del anfitrión define una ubicación /xyz, que es manejada por el nginx del anfitrión, y luego se define una ubicación / para ser reenviada mediante proxy_pass al contenedor de Discourse.
Para mi caso de uso, necesito publicar enlaces como publicaciones de Discourse que apunten a mi.dominio.com/xyz/algo.html, es decir, enlaces dentro de Discourse que apuntan a páginas servidas por el nginx del anfitrión.
Esto funcionaba hasta la última actualización de Discourse. Ahora, al hacer clic en los enlaces, terminan en la página de Discourse “no se pudo encontrar…”. En cambio, copiar los destinos de los enlaces y abrirlos en una nueva pestaña funciona como se espera.
Tengo bastante conocimiento sobre protocolos de bajo nivel, pero cuanto más alto subo en la pila de protocolos, menos sé ![]()
Mi hipótesis actual es que el nginx de Discourse mantiene la conexión abierta (keepalive?), por lo que el nginx del anfitrión pierde la oportunidad de analizar la nueva ruta de solicitud para seleccionar el servidor correcto. Las solicitudes de la conexión se pasan al contenedor tal cual, manteniéndose activas. Entonces, la solicitud para la ruta /xyz es respondida por Discourse, que no conoce esta carpeta..
¿Cómo debería abordar este problema? Si no hay una solución sencilla, ya sería de ayuda obtener algunas indicaciones; incluso una buena descripción con respecto a un conocimiento decente del protocolo HTTP podría servir.
¡Gracias!