Falha no servidor e migração

Então, o servidor DigitalOcean que hospeda meu site Discourse teve algum tipo de problema, e a DigitalOcean está tentando migrar meu site para outro servidor. Estou em contato com eles sobre o problema, mas queria saber se alguém na comunidade Discourse já passou por essa situação antes.

Alguém tem dicas sobre essa situação? Eles normalmente notificam quando esse processo é concluído? Eles ainda não responderam aos meus e-mails. Meu site está completamente fora do ar há alguns dias, e isso não é bom para minha comunidade. Não fiz nenhuma alteração no Discourse, então sei que o problema ocorreu devido ao problema no servidor DigitalOcean. Há algo específico que eu deva fazer do meu lado, ou devo apenas esperar mais um pouco?

Desliguei e liguei o droplet, além de reconstruir o Discourse com ./launcher rebuild app. Após a reconstrução, recebo este erro:

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.

e-mail da DigitalOcean:

Identificamos um problema na máquina física que hospeda um ou mais dos seus Droplets, listados abaixo. Para minimizar a interrupção, migraremos os Droplets para uma máquina física mais saudável. Durante a migração, eventos do Painel de Controle e da API — incluindo: desligamentos, redimensionamentos e tentativas de destruir o Droplet — não terão sucesso para os Droplet(s) afetado(s).

Para minimizar o tempo de inatividade, tentaremos realizar migrações ao vivo em todos os casos possíveis. Uma migração ao vivo resultaria em nenhum tempo de inatividade, mas com pequenas quedas de desempenho na E/S do disco e perda de pacotes de um segundo ou menos enquanto a rede é transferida para o novo host físico.

Caso não consigamos realizar uma migração ao vivo de um Droplet, realizaremos uma migração offline, durante a qual o Droplet será desligado e migrado offline durante a janela de tempo.

Minha suposição é que o problema relacionado ao Digital Ocean não tem conexão e que você tem algum outro servidor web instalado ou em execução no seu servidor. Há algum Apache ou Nginx instalado? Algum servidor web aparece no seu site mesmo com o Discourse não estando em execução?

Usei o instalador automático do Discourse da DigitalOcean quando configurei tudo originalmente; ele usa Ubuntu e o que mais vem incluído no pacote. Não tenho outros sites neste droplet. Parece que o nginx está ativo e em execução. O status do Apache retorna um erro.

Isso é o que aparece no meu site fora do ar quando visitado no Firefox:

Error 521Ray ID: 5c686964ad310d1a • 2020-08-22 00:17:35 UTC
Web server is down

Browser - Cloudflare - Host
Working - Working - Error

Executei o comando systemctl status apache2 para verificar se o Apache está em execução e ele diz:

    ● apache2.service - The Apache HTTP Server
       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)

Executei o comando systemctl status nginx para verificar o nginx e ele diz:

● nginx.service - A high performance web server and a reverse proxy server
   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)

Olhando esse e-mail, parece que você pode apenas esperar e ver o que eles fazem. Mas eu recomendo garantir que tenha um backup offsite, só para prevenir!

Geralmente, é muito melhor usar o método oficial de instalação. A menos que você esteja usando esse droplet para algo além do Discourse, minha sugestão é aproveitar essa oportunidade para começar do zero com um novo droplet e instalar seguindo as instruções oficiais e suportadas aqui: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

Depois, você pode baixar um backup da sua instância antiga e fazer o upload para a nova, e estará de volta no ar com uma instância oficialmente suportada, que será mais fácil de manter.