Así que el servidor de DigitalOcean que aloja mi sitio web de Discourse tuvo algún tipo de problema y DigitalOcean está intentando migrar mi sitio a otro servidor. Estoy en contacto con ellos sobre el problema, pero quería ver si alguien en la comunidad de Discourse ha pasado por esta situación antes.
¿Alguien tiene consejos sobre esta situación? ¿Suelen notificarle cuando este proceso se completa? Aún no han respondido a mis correos electrónicos. Mi sitio web ha estado completamente caído durante un par de días y esto no es bueno para mi comunidad. No hice ningún cambio en Discourse, así que sé que el problema ocurrió debido al problema del servidor de DigitalOcean. ¿Hay algo específico que deba hacer de mi parte, o simplemente debo esperar más tiempo?
Apagué y encendí el droplet, y también reconstruí Discourse con ./launcher rebuild app. Después de reconstruir, obtengo este error:
Error response from daemon: driver failed programming external connectivity on endpoint app (fd1221330787160dee95f94a1256ca0dc8ddb8be2bc3c4d576ab54d3b768613a): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use.
correo electrónico de DigitalOcean:
Hemos identificado un problema en la máquina física que aloja uno o más de sus Droplets, que se enumeran a continuación. Para minimizar las interrupciones, migraremos los Droplets a una máquina física más saludable. Durante la migración, los eventos del Panel de Control y de la API, incluidos: apagados, redimensionamientos y intentos de destruir el Droplet, no tendrán éxito para el (los) Droplet(s) afectado(s).
Para minimizar el tiempo de inactividad, intentaremos realizar migraciones en vivo en todos los casos posibles. Una migración en vivo no resultaría en tiempo de inactividad, pero causaría una ligera disminución en el rendimiento de la E/S del disco y una pérdida de paquetes de un segundo o menos mientras la red se cambia al nuevo host físico.
En caso de que no podamos realizar una migración en vivo de un Droplet, realizaremos una migración fuera de línea, durante la cual el Droplet se apagará y se migrará fuera de línea durante la ventana.
Mi suposición es que lo de Digital Ocean no tiene relación y que de alguna manera tienes otro servidor web instalado o en ejecución en tu servidor. ¿Hay Apache o Nginx instalado? ¿Aparece algún servidor web en tu sitio aunque Discourse no esté en ejecución?
Utilicé el instalador automático de Discourse de DigitalOcean cuando configuré todo originalmente; usa Ubuntu y lo demás que viene incluido. No tengo otros sitios web en este droplet. Parece que nginx está activo y en ejecución. El estado de Apache devuelve un error.
Esto es lo que aparece en mi sitio caído al visitarlo en Firefox:
Error 521ID de Ray: 5c686964ad310d1a • 2020-08-22 00:17:35 UTC
El servidor web está caído
Navegador - Cloudflare - Host
Funcionando - Funcionando - Error
Ejecuté el comando systemctl status apache2 para ver si Apache está en ejecución y dice:
● apache2.service - El servidor HTTP Apache
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: failed (Result: exit-code) since Fri 2020-08-21 16:16:24 UTC; 7h ago
Process: 912 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILUR
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: AH0055
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: (98)Ad
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: (98)Ad
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: no lis
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: AH0001
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: Action
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 apachectl[912]: The Ap
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: apache2.se
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: apache2.se
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: Failed to
lines 1-17/17 (END)
Ejecuté el comando systemctl status nginx para verificar nginx y dice:
● nginx.service - Un servidor web de alto rendimiento y un servidor proxy inverso
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
Active: active (running) since Fri 2020-08-21 16:16:24 UTC; 8h ago
Docs: man:nginx(8)
Process: 972 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=
Process: 917 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process o
Main PID: 976 (nginx)
Tasks: 2 (limit: 1108)
CGroup: /system.slice/nginx.service
├─976 nginx: master process /usr/sbin/nginx -g daemon on; master_proc
└─977 nginx: worker process
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: Starting A
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: nginx.serv
Aug 21 16:16:24 discourse-beta-ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: Started A
lines 1-15/15 (END)
Al ver ese correo, parece que solo puedes esperar a ver qué hacen. Pero te recomendaría asegurarte de tener una copia de seguridad fuera del sitio, ¡por si acaso!
Por lo general, es mucho mejor utilizar el método de instalación oficial. A menos que estés usando ese droplet para algo más además de Discourse, mi sugerencia sería que aproveches esta oportunidad para empezar de cero con un nuevo droplet e instalarlo siguiendo las instrucciones oficiales y compatibles aquí: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
Luego, puedes descargar una copia de seguridad de tu instancia antigua y subirla a tu nueva instancia, y estarás de nuevo en funcionamiento con una instancia oficialmente compatible y más fácil de mantener.