Recientemente moví mi servidor Dell de una ubicación a otra. Su sistema operativo principal/Gestor de VM es Proxmox VE 5.3. Tengo una VM de Nginx que actúa como proxy inverso para varias otras VMs, una de las cuales es una VM de Discourse.
Después de configurar mi nuevo enrutador, logré que varias de mis VMs se conectaran a Internet (incluso sin necesidad de renovar los certificados SSL). Sin embargo, con Discourse, recibo 502 Bad Gateway - nginx/1.14.0 (Ubuntu) al intentar acceder a Discourse desde un navegador.
He recibido este error antes, pero generalmente uno de los siguientes métodos lo soluciona:
Reiniciar la VM de Discourse
Aún 502 Bad Gateway - nginx/1.14.0 (Ubuntu) en un navegador.
Borrar las cookies del navegador y probar con diferentes navegadores
Solo por si acaso fuera algo de mi lado… no. El mismo 502 Bad Gateway - nginx/1.14.0 (Ubuntu) en varios navegadores.
Limpieza de Discourse y verificación del espacio en disco
Inicialmente, al limpiar, eliminó aproximadamente 4 GB de datos. Me sorprendió mucho. ¿Quizás eso fue lo que causó el problema en primer lugar? De todos modos, ahora cuando intento limpiar Discourse:
> root@forum:/var/discourse# ./launcher cleanup
> ¡ADVERTENCIA! Esto eliminará todos los contenedores detenidos.
> ¿Estás seguro de que quieres continuar? [y/N] y
> Espacio recuperado total: 0B
> ¡ADVERTENCIA! Esto eliminará todas las imágenes sin al menos un contenedor asociado a ellas.
> ¿Estás seguro de que quieres continuar? [y/N] y
> Espacio recuperado total: 0B
También quiero reiterar que no me he quedado sin espacio en disco:
Git Pull
Está actualizado.
> root@forum:/var/discourse# git pull
> Ya está actualizado.
Reiniciar Discourse
Aquí es donde descubrí dos errores que estoy recibiendo:
> root@forum:/var/discourse# ./launcher restart app
>
> ADVERTENCIA: Estamos a punto de comenzar a descargar la imagen base de Discourse
> Este proceso puede tardar desde unos minutos hasta una hora, dependiendo de la velocidad de tu red
>
> Por favor, ten paciencia
>
> No se pudo encontrar la imagen 'discourse/base:2.0.20191013-2320' localmente
> /usr/bin/docker: Respuesta de error del daemon: Obtener https://registry-1.docker.io/v2/: net/http: solicitud cancelada mientras se esperaba la conexión (Client.Timeout superado mientras se esperaban las cabeceras).
> Consulta '/usr/bin/docker run --help'.
> Tu instalación de Docker no funciona correctamente
>
> Ver: `https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam`
Revisé el enlace sugerido. Recomienda hacer un Git Pull y Reconstruir Discourse (verás qué obtengo más abajo). También sugiere ejecutar un comando de Docker “Hello World”. Funciona (aunque parece tener algunos problemas?):
> root@forum:/var/discourse# docker run -it --rm hello-world
> No se pudo encontrar la imagen 'hello-world:latest' localmente
> latest: Descargando desde library/hello-world
> 1b930d010525: Descarga completada
> Resumen: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
> Estado: Imagen actualizada descargada para hello-world:latest
>
> ¡Hola desde Docker!
> Este mensaje indica que tu instalación parece funcionar correctamente.
>
> Para generar este mensaje, Docker realizó los siguientes pasos:
> 1. El cliente de Docker se comunicó con el daemon de Docker.
> 2. El daemon de Docker descargó la imagen "hello-world" desde Docker Hub.
> (amd64)
> 3. El daemon de Docker creó un nuevo contenedor a partir de esa imagen que ejecuta el
> ejecutable que produce la salida que estás leyendo actualmente.
> 4. El daemon de Docker transmitió esa salida al cliente de Docker, que la envió
> a tu terminal.
>
> Para probar algo más ambicioso, puedes ejecutar un contenedor de Ubuntu con:
> $ docker run -it ubuntu bash
>
> Comparte imágenes, automatiza flujos de trabajo y más con una ID de Docker gratuita:
> https://hub.docker.com/
>
> Para más ejemplos e ideas, visita:
> https://docs.docker.com/get-started/
>
> Error al redimensionar la terminal, usando el tamaño predeterminado
Bueno, luego intenté el Ubuntu Bash… y error:
> root@forum:/var/discourse# docker run -it ubuntu bash
> No se pudo encontrar la imagen 'ubuntu:latest' localmente
> docker: Respuesta de error del daemon: Obtener https://registry-1.docker.io/v2/library/ubuntu/manifests/latest: Obtener https://auth.docker.io/token?scope=repository%3Alibrary%2Fubuntu%3Apull&service=registry.docker.io: net/http: solicitud cancelada mientras se esperaba la conexión (Client.Timeout superado mientras se esperaban las cabeceras).
> Consulta 'docker run --help'.
Es hora de pasar a otros métodos que conozco:
Detener e iniciar Discourse
Recibiendo lo mismo que con el Reinicio:
> root@forum:/var/discourse# ./launcher stop app
>
> ADVERTENCIA: Estamos a punto de comenzar a descargar la imagen base de Discourse
> Este proceso puede tardar desde unos minutos hasta una hora, dependiendo de la velocidad de tu red
>
> Por favor, ten paciencia
>
> No se pudo encontrar la imagen 'discourse/base:2.0.20191013-2320' localmente
> /usr/bin/docker: Respuesta de error del daemon: Obtener https://registry-1.docker.io/v2/: net/http: solicitud cancelada mientras se esperaba la conexión (Client.Timeout superado mientras se esperaban las cabeceras).
> Consulta '/usr/bin/docker run --help'.
> Tu instalación de Docker no funciona correctamente
>
> Ver: `https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam`
>
> root@forum:/var/discourse# ./launcher start app
>
> ADVERTENCIA: Estamos a punto de comenzar a descargar la imagen base de Discourse
> Este proceso puede tardar desde unos minutos hasta una hora, dependiendo de la velocidad de tu red
>
> Por favor, ten paciencia
>
> No se pudo encontrar la imagen 'discourse/base:2.0.20191013-2320' localmente
> /usr/bin/docker: Respuesta de error del daemon: Obtener https://registry-1.docker.io/v2/discourse/base/manifests/2.0.20191013-2320: Obtener https://auth.docker.io/token?scope=repository%3Adiscourse%2Fbase%3Apull&service=registry.docker.io: net/http: solicitud cancelada mientras se esperaba la conexión (Client.Timeout superado mientras se esperaban las cabeceras).
> Consulta '/usr/bin/docker run --help'.
> Tu instalación de Docker no funciona correctamente
>
> Ver: `https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam`
Reconstruir Discourse
Y recibiendo los mismos dos errores de nuevo.
> root@forum:/var/discourse# ./launcher rebuild app
>
> ADVERTENCIA: Estamos a punto de comenzar a descargar la imagen base de Discourse
> Este proceso puede tardar desde unos minutos hasta una hora, dependiendo de la velocidad de tu red
>
> Por favor, ten paciencia
>
> No se pudo encontrar la imagen 'discourse/base:2.0.20191013-2320' localmente
> /usr/bin/docker: Respuesta de error del daemon: Obtener https://registry-1.docker.io/v2/: net/http: solicitud cancelada mientras se esperaba la conexión (Client.Timeout superado mientras se esperaban las cabeceras).
> Consulta '/usr/bin/docker run --help'.
> Tu instalación de Docker no funciona correctamente
>
> Ver: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam
Restaurar desde una copia de seguridad anterior
Tengo una instantánea de un momento antes de mover el servidor y realizar la limpieza (que, como se mencionó, eliminó aproximadamente 4 GB de archivos). Intenté todo lo anterior nuevamente… y lo mismo (menos la Limpieza), así como el 502 Bad Gateway - nginx/1.14.0 (Ubuntu) en un navegador. ¿Quizás esto no tiene nada que ver con la limpieza?
En todo mi tiempo con Discourse, nunca he encontrado ninguno de estos errores. ¿Alguna sugerencia sobre qué puedo hacer para resolver estos errores y hacer que Discourse funcione en un navegador?
