Sitio caído - ¿la aplicación no se inicia, conflicto en el puerto 443?

Tengo Discourse instalado en un VPS de Ubuntu 18.04 siguiendo las instrucciones de instalación estándar. Ha estado funcionando bien durante un par de años, pero cuando entré a mi sitio esta tarde, el certificado TLS había expirado; y como usa HSTS, eso significó que quedé completamente bloqueado del sitio. Fácil, pensé, SSH al servidor, instalo actualizaciones (solo por si acaso), ejecuto ./launcher rebuild app, y todo estará bien.

No, no funcionó de esa manera; obtuve una página de “ups”. Así que decidí reiniciar el sistema, y ahora obtengo una página 502 cuando intento navegar allí. No puedo iniciar app:

root@talk:/var/discourse# ./launcher start app
Se detecta la arquitectura x86_64.

Iniciando contenedor existente
+ /usr/bin/docker start app
Respuesta de error del demonio: el controlador falló al programar la conectividad externa en el endpoint app (e5db356e19c947c3e1e20a337aea7ee4bdcfa9bc5f3eac485e76439f3ed3a0e9): Bind para 0.0.0.0:443 falló: el puerto ya está asignado
Error: no se pudieron iniciar los contenedores: app

…y, de hecho, hay algo escuchando en el puerto 443:

root@talk:/var/discourse# netstat -tulpn
Conexiones activas de Internet (solo servidores)
Proto Recv-Q Send-Q Dirección Local           Dirección Externa         Estado       PID/Nombre del programa
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      906/docker-proxy
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      427/systemd-resolve
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      918/docker-proxy
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      892/docker-proxy
tcp6       0      0 :::9936                 :::*                    LISTEN      578/sshd
udp        0      0 127.0.0.53:53           0.0.0.0:*                           427/systemd-resolve

Me temo que estoy atascado, ¿qué debería comprobar a continuación?

3 Me gusta

¿Ha pasado mucho tiempo desde que hiciste una reconstrucción? ¿Hubo algún error? ¿Decía algo sobre la actualización de postgres? Quizás reconstruye de nuevo.

2 Me gusta

Otra cosa que podrías comprobar es si se está ejecutando un contenedor de Discourse diferente, por ejemplo, import. Ejecutar el siguiente comando y, si hay contenedores adicionales, observar las columnas de estado y puertos responderá a eso:

docker container ls
2 Me gusta

He estado manteniendo el sitio actualizado; recuerdo la actualización de postgres hace algún tiempo y la gestioné entonces. No recuerdo haber visto nada al respecto esta vez, pero es bastante fácil ejecutar otra reconstrucción. Pero mientras lo hacía, vi:

…y, de hecho, import se está ejecutando. Así que lo detuve, y una vez que terminó la reconstrucción, el sitio volvió a estar en línea.

Y el certificado Let’s Encrypt se ha renovado (parece que se emitieron varios hoy, lo cual es un poco problemático), así que todo vuelve a estar en orden. Gracias por la rápida respuesta.

3 Me gusta

Entonces quieres.

  ./launcher destroy import
3 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.