Échec du serveur et migration

Donc, le serveur DigitalOcean qui héberge mon site Discourse a rencontré un problème, et DigitalOcean tente de migrer mon site vers un autre serveur. Je suis en contact avec eux concernant ce problème, mais je voulais savoir si quelqu’un dans la communauté Discourse a déjà vécu une situation similaire.

Quelqu’un a-t-il des conseils pour cette situation ? Ont-ils l’habitude de vous notifier lorsque ce processus est terminé ? Ils n’ont pas encore répondu à mes e-mails. Mon site est complètement hors ligne depuis quelques jours, ce qui n’est pas bon pour ma communauté. Je n’ai apporté aucune modification à Discourse, je sais donc que le problème est dû à un souci du serveur DigitalOcean. Y a-t-il quelque chose de spécifique que je devrais faire de mon côté, ou dois-je simplement attendre plus longtemps ?

J’ai éteint et rallumé le droplet, puis j’ai reconstruit Discourse avec ./launcher rebuild app. Après la reconstruction, j’obtiens cette erreur :

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 de DigitalOcean :

Nous avons identifié un problème sur la machine physique hébergeant l’un ou plusieurs de vos Droplets, listés ci-dessous. Afin de minimiser les perturbations, nous allons migrer les Droplets vers une machine physique plus saine. Pendant toute la migration, les événements du Panneau de contrôle et de l’API — notamment : les arrêts, les redimensionnements et les tentatives de destruction des Droplets — ne réussiront pas pour les Droplets concernés.

Afin de minimiser les temps d’arrêt, nous tenterons d’effectuer des migrations en direct dans tous les cas possibles. Une migration en direct entraînerait aucun temps d’arrêt, mais une légère baisse de performance en termes d’E/S disque et une perte de paquets d’une seconde ou moins lors du basculement du réseau vers le nouvel hôte physique.

Dans le cas où nous ne serions pas en mesure d’effectuer une migration en direct d’un Droplet, nous procéderons à une migration hors ligne, au cours de laquelle le Droplet sera éteint et migré hors ligne pendant la fenêtre prévue.

Mon hypothèse est que les éléments liés à Digital Ocean ne sont pas liés et que vous avez installé ou exécuté un autre serveur web sur votre serveur. Y a-t-il Apache ou Nginx installé ? Un serveur web s’affiche-t-il sur votre site même si Discourse n’est pas en cours d’exécution ?

J’ai utilisé l’installateur automatique Discourse de DigitalOcean lors de la configuration initiale ; il utilise Ubuntu et tout ce qui est inclus dans son paquetage. Je n’ai aucun autre site web sur ce droplet. Il semble que nginx soit actif et en cours d’exécution. La commande de statut Apache renvoie une erreur.

Voici ce qui s’affiche sur mon site en panne lorsque je le visite avec Firefox :

Error 521Ray ID: 5c686964ad310d1a • 2020-08-22 00:17:35 UTC
Le serveur web est en panne

Navigateur - Cloudflare - Hôte
Fonctionne - Fonctionne - Erreur

J’ai exécuté la commande systemctl status apache2 pour vérifier si Apache est en cours d’exécution, et voici ce qu’elle indique :

    ● apache2.service - Le serveur 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)

J’ai ensuite exécuté la commande systemctl status nginx pour vérifier nginx, et voici le résultat :

● nginx.service - Serveur web haute performance et serveur proxy inverse
   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)

En regardant cet e-mail, il semble que vous puissiez simplement attendre et voir ce qu’ils font. Mais je vous conseille de faire une sauvegarde hors site, au cas où !

En général, il est beaucoup mieux d’utiliser la méthode d’installation officielle. À moins que vous n’utilisiez ce droplet pour autre chose en plus de Discourse, je vous suggère de profiter de cette opportunité pour repartir à zéro avec un nouveau droplet et l’installer en suivant les instructions officielles et prises en charge ici : discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

Ensuite, vous pourrez télécharger une sauvegarde de votre ancienne instance et la télécharger sur votre nouvelle instance, et vous serez de nouveau opérationnel avec une instance officiellement prise en charge, ce qui facilitera sa maintenance.