El sitio responde 502 Bad gateway: ¿es Ruby?

Tenemos un Discourse que ha estado funcionando durante al menos tres años y ayer cometí el error de reiniciar la instancia con la esperanza de que esto aplicara un cambio de dominio. La instancia está en ejecución y podemos ver que nginx está recibiendo solicitudes desde el exterior, pero todos los visitantes reciben constantemente un error “502 Bad gateway”. Aquí hay un ejemplo de entrada en el registro de errores de nginx:

2020/06/22 19:03:26 [error] 11742#11742: *158 connect() failed (111: Connection refused) while connecting to upstream, client: 162.158.159.12, server: <my domain>, request: "GET                / HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "<my domain>"

No hay ningún servidor web ejecutándose fuera de Docker, por lo que el archivo app.yml simplemente redirige los puertos 80 y 443 al contenedor. Pero, ¿qué debería estar ejecutándose en el puerto 3000? ¿Se supone que debe ser Ruby / Rails?

Hola Chris:

Sí, tienes razón.

Rails se ejecuta en el puerto 3000 en la aplicación de Discourse.

Quizás quieras revisar el registro de Rails en la aplicación para ver si puedes averiguar qué está ocurriendo con Rails.

Espero que esto ayude un poco.

¿Estabas intentando cambiar el nombre de dominio de tu instancia?

Existen procedimientos establecidos para ello. Si no sigues el proceso, pueden producirse errores como el que estás experimentando.

Por favor, sigue esta guía; te ayudará a cambiar el nombre de dominio correctamente.
Change the domain name or rename your Discourse

Existe una alternativa de “desarrollo” para el dominio en vivo y, de alguna manera, se ha colado en la configuración de tal forma que todo, excepto las imágenes, proviene del dominio en vivo, mientras que las imágenes provienen del dominio de desarrollo. Como este último no tiene certificado, nosotros (bastante correctamente) nos encontramos con el problema de seguridad entre sitios y las imágenes no se cargan.

Actualmente estamos intentando reconstruir el contenedor, como se sugiere en otro lugar.

Una complicación adicional es que todo el tráfico pasa por CloudFlare, por lo que ahora estamos teniendo problemas con los certificados SSL. No estoy seguro de si templates/cloudflare.template.yml sigue funcionando.

Necesitarás desactivar Cloudflare para que Let’s Encrypt pueda solicitar un certificado.

Todo solucionado ahora. Nuestro mejor técnico logró crear una nueva versión e incluso logró que LetsEncrypt funcionara.