He revisado todos los temas que encontré sobre errores 502 de Discourse y nginx, pero no pude encontrar ni entender nada que tenga sentido para mi caso.
Esto podría ser relevante, ejecutando desde el contenedor:
# netstat -plant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 644/nginx: master p
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 644/nginx: master p
tcp6 0 0 :::6379 :::* LISTEN -
tcp6 0 0 :::5432 :::* LISTEN -
¿Hay algo que debería estar ejecutándose en el puerto 3000?
¿Podrías indicarme dónde buscar más información para depurar este problema?
Inicialmente muestra un error 502 porque los servicios dentro del contenedor están iniciándose. Debería desaparecer en menos de 30 segundos. Si no es así, es posible que la CPU de tu servidor esté bajo una carga extrema, lo que está causando la lentitud.
Acabo de clonar el repositorio y ejecutar los comandos de configuración, así que supongo que solo tiene los plugins predeterminados. No estoy seguro de dónde verificarlo, pero estoy seguro de que no he añadido ninguno.
El uso de un disco duro tradicional en lugar de una unidad SSD no debería causar un error 502. Eso no es realmente plausible, como indica tu pregunta, @elopio.
Aquí tienes un pequeño artículo que podría ser útil:
En mi opinión, lo mejor que puedes hacer es abrir varias terminales y ejecutar tail -f en los archivos de registro tanto de Rails como de nginx, incluyendo los registros de errores y de acceso; luego, intenta acceder y asegúrate de que, cuando aparezca el error 502, tengas los ojos puestos en el final de los archivos de registro.
¿Sabes dónde residen esos archivos de registro y cómo ejecutar los comandos tail -f en las terminales?
Nota: antes preguntaste:
Rails se ejecuta en el puerto 3000 dentro del contenedor Docker y ese puerto no está expuesto fuera del contenedor. Por eso no ves el puerto 3000 fuera del contenedor cuando ejecutas netstat fuera de él.
¡Wooo! Al revisar los registros de Rails, descubrí que el registro de Unicorn era enorme y mostraba errores de permisos. Eliminé rm -rf tmp/cache/bootsnap-compile-cache/ y ahora veo la pantalla de felicitaciones!!!
Gracias, amigos. Voy a seguir jugando un poco más con esto antes de decidir recrearlo en un servidor SSD.
Es la migración del hackerspace de Costa Rica de Telegram a Discourse Todavía tenemos muchísimas cosas por hacer, pero esta vez estoy seguro de que lograremos eliminar el chat definitivamente. ¡Muchas gracias, equipo de Discourse!