502 bad gateway nginx

Mon serveur YunoHost

Matériel: Raspberry Pi4 à la maison, RAM 8Go - OS sur SDcard 60Go - /home et /www sur SSD externe 120Go
Version de YunoHost: 4.1.7.4
J’ai accès à mon serveur : En SSH | Par la webadmin | En direct avec un clavier/écran | …
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : oui
Si oui, expliquer: Je venais d’installer SyncThing, de réaliser les mises à jour système qui étaient indiquées. Je venais de faire une premiere sauvegarde (pas certaine qu’elle ai eu le temps de se terminer).

Description du problème

Bonjour,

Je suis plutôt débutante sur YunoHost. J’en suis à plusieurs essais heureux sans avoir eu besoin jusqu’alors de faire trop de manipulations. Je remercie au passage la communauté pour ce projet formidable!

Hier j’ai réalisé plusieurs opérations (mise à jour, première backup et install de SyncThing). À la fin ou pendant la sauvegarde (je ne sais toujours pas si elle est compléte), le système a du redémarrer. À partir de ce moment, il n’était plus possible d’accéder à l’interface web car le compte admin n’était plus accessible. J’ai pu y accéder en root par ssh et me rendre compte que les partitions /home et /var (sur disque dur externe) ne se montaient plus.

J’ai finalement transféré ces 2 dossiers directement sur la SDcard à la racine du système.
J’ai alors rencontré un problème de serveur LDAP. En suivant un autre post j’ai réussi à résoudre ce souci. Cela m’a permis de retrouver le compte admin et l’accès par l’interface web.

À présent, j’ai une erreur “502 bad gateway nginx” quand je souhaite accéder aux applications installées. Et lorsque je souhaite accéder à l’onglet “Services” dans l’interface web, j’ai un “YunoHost a rencontré une erreur interne”, et le message m’invite à chercher de l’aide sur le forum en donnant tous les détails (GET /services {}) et “Trace” ci-dessous:

  File "/usr/lib/python2.7/dist-packages/moulinette/interfaces/api.py", line 485, in process
    ret = self.actionsmap.process(arguments, timeout=30, route=_route)
  File "/usr/lib/python2.7/dist-packages/moulinette/actionsmap.py", line 592, in process
    return func(**arguments)
  File "/usr/lib/moulinette/yunohost/service.py", line 302, in service_status
    output = {s: _get_and_format_service_status(s, infos) for s, infos in services.items()}
  File "/usr/lib/moulinette/yunohost/service.py", line 302, in 
    output = {s: _get_and_format_service_status(s, infos) for s, infos in services.items()}
  File "/usr/lib/moulinette/yunohost/service.py", line 337, in _get_and_format_service_status
    raw_status, raw_service = _get_service_information_from_systemd(systemd_service)
  File "/usr/lib/moulinette/yunohost/service.py", line 315, in _get_service_information_from_systemd
    systemd = d.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1')
  File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 241, in get_object
    follow_name_owner_changes=follow_name_owner_changes)
  File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 248, in __init__
    self._named_service = conn.activate_name_owner(bus_name)
  File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 180, in activate_name_owner
    self.start_service_by_name(bus_name)
  File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 278, in start_service_by_name
    'su', (bus_name, flags)))
  File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
DBusException: org.freedesktop.DBus.Error.TimedOut: Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)

J’ai suivi ce post, mais je n’ai pas le même souci: https://forum.yunohost.org/t/solved-wallabag-nginx-502-bad-gateway/14225

Je suis une débutante et n’arrive pas à aller plus loin toute seule. D’avance merci si quelqu’un peut m’aider.

Salut,

De mémoire ce message survient lorsque systemd est à moitié dans les choux … à mon avis le plus simple est de commencer par redémarrer la machine si tu n’as pas déjà essayer ?

(Par contre attention, je ne sais pas si du coup tu as bien configuré tes partitions pour qu’elles se montent au démarrage)

Merci de ton aide.
Oui je l’ai déjà redémarré plusieurs fois mais cela ne change rien au problème.

Je n’ai pas reconfiguré le montage de mes partitions. J’ai pensé avoir une erreur dans le fichier /etc/fstab et pour éviter ce problème, j’ai recréé dans le système de fichiers les répertoires /home et /var dans lesquels je me suis contentée de copier ce qui était initialement sur le disque dur externe. C’est peut-être d’ici que vient de souci…

Je n’ai pas touché depuis au SSD si besoin de repartir avec lui?

Hmokay alors prenons le problème par un autre bout:

  • si en SSH tu fais systemctl (juste systemctl) est-ce que tu vois bien une grande liste de chose affichée ?
  • si tu fais systemctl | grep failed, est-ce que ça te montre des lignes de services qui seraient dans les choux ?

Oui j’ai bien une grand liste avec systemctl…

… et oui il y a aussi beaucoup de lignes de services dans les choux:

● atd.service loaded failed failed Deferred execution scheduler
● avahi-daemon.service loaded failed failed Avahi mDNS/DNS-SD Stack
● bluetooth.service loaded failed failed Bluetooth service
● dhcpcd.service loaded failed failed dhcpcd on all interfaces
● etherpad_mypads.service loaded failed failed Etherpad-lite, the collaborative editor.
● mariadb.service loaded failed failed MariaDB 10.3.27 database server
● php7.3-fpm.service loaded failed failed The PHP 7.3 FastCGI Process Manager
● postfix@-.service loaded failed failed Postfix Mail Transport Agent (instance -)
● postgresql@11-main.service loaded failed failed PostgreSQL Cluster 11-main
● redis-server.service loaded failed failed Advanced key-value store
● systemd-logind.service loaded failed failed Login Service
● wpa_supplicant.service loaded failed failed WPA supplicant

Erf oké, et si tu fais par exemple :

systemctl status php7.3-fpm

et

journalctl -u php7.3-fpm --no-hostname --no-pager -n 150

ça raconte quoi ?

La 1ere partie de systemctl status php7.3-fpm dit:

● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2021-03-21 16:32:45 GMT; 56min ago
     Docs: man:php-fpm7.3(8)
  Process: 727 ExecStart=/usr/sbin/php-fpm7.3 --nodaemonize --fpm-config /etc/php/7.3/fpm/php-fpm.conf (code=exited, status=78)
 Main PID: 727 (code=exited, status=78)

Et pour journalctl -u php7.3-fpm --no-hostname --no-pager -n 150 (j’ai repéré que c’était le même mais sans le nom de domaine):

-- Logs begin at Sun 2021-03-21 16:31:07 GMT, end at Sun 2021-03-21 17:30:22 GMT. --
Mar 21 16:32:41 systemd[1]: Starting The PHP 7.3 FastCGI Process Manager...
Mar 21 16:32:45 php-fpm7.3[727]: [21-Mar-2021 16:32:45] ERROR: unable to bind listening socket for address '/var/run/php/php7.3-fpm-nextcloud.sock': No such file or directory (2)
Mar 21 16:32:45 php-fpm7.3[727]: [21-Mar-2021 16:32:45] ERROR: FPM initialization failed
Mar 21 16:32:45 systemd[1]: php7.3-fpm.service: Main process exited, code=exited, status=78/CONFIG
Mar 21 16:32:45 systemd[1]: php7.3-fpm.service: Failed with result 'exit-code'.
Mar 21 16:32:45 systemd[1]: Failed to start The PHP 7.3 FastCGI Process Manager.

Woké du coup ça commence potentiellement à avoir un lien avec les bidouilles de partitions /var/ …

  • Si tu tentes un restart naif du service avec systemctl restart php7.3-fpm puis systemctl status php7.3-fpm, est-ce que ça fonctionne ?
  • Sinon, vérifions avec ls -ld /var/run que le dossier semble exister

Le systemctl restart php7.3-fpm ne fonctionne pas. Pour systemctl status php7.3-fpm j’ai:

Job for php7.3-fpm.service failed because the control process exited with error code. See "systemctl status php7.3-fpm.service" and "journalctl -xe" for details.

Avec la commande ls -ld /var/run, il connaît bien le dossier:

drwxr-xr-x 11 root root 4096 Mar 21 17:27 /var/run

Hmokay alors regardons ce qu’il y a dedans avec ls -l /var/run/

J’ai fais des erreurs de copier-coller dans le précédent message. “Job for php…” est bien la réponse au “restart”.

Pour systemctl status php7.3-fpm, j’ai ce qui suis (j’ai échangé mon nom de domaine par “domain.org”:

● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2021-03-21 17:38:14 GMT; 5min ago
     Docs: man:php-fpm7.3(8)
  Process: 1812 ExecStart=/usr/sbin/php-fpm7.3 --nodaemonize --fpm-config /etc/php/7.3/fpm/php-fpm.conf (code=exited, status=78)
 Main PID: 1812 (code=exited, status=78)

Mar 21 17:38:13 domain.org systemd[1]: Starting The PHP 7.3 FastCGI Process Manager...
Mar 21 17:38:14 domain.org php-fpm7.3[1812]: [21-Mar-2021 17:38:14] ERROR: unable to bind listening socket for address '/var/run/php/php7.3-fpm-nextcloud.sock': No suc
Mar 21 17:38:14 domain.org php-fpm7.3[1812]: [21-Mar-2021 17:38:14] ERROR: FPM initialization failed
Mar 21 17:38:14 domain.org systemd[1]: php7.3-fpm.service: Main process exited, code=exited, status=78/CONFIG
Mar 21 17:38:14 domain.org systemd[1]: php7.3-fpm.service: Failed with result 'exit-code'.
Mar 21 17:38:14 domain.org systemd[1]: Failed to start The PHP 7.3 FastCGI Process Manager.

Voici le retour pour ls -l /var/run/:

total 52
-rw------- 1 root      root       11 Mar 21 16:31 alsactl.pid
-rw-r--r-- 1 root      root        5 Mar 21 16:32 crond.pid
drwxr-xr-x 2 root      root     4096 Mar 21 16:31 dbus
drwxr-xr-x 3 root      root     4096 Mar 21 16:32 dhcpcd
drwxr-xr-x 5 root      root     4096 Mar 21 16:32 dovecot
drwxr-xr-x 2 root      root     4096 Mar 21 16:32 fail2ban
lrwxrwxrwx 1 root      root       11 Mar 21 10:23 ldapi -> slapd/ldapi
drwxr-xr-x 2 metronome adm      4096 Mar 21 16:32 metronome
drwxr-xr-x 2 mysql     root     4096 Mar 20 17:18 mysqld
drwxr-xr-x 2 root      root     4096 Mar 21 16:31 nscd
drwxr-xr-x 2 nslcd     nslcd    4096 Mar 21 16:32 nslcd
-rw-r--r-- 1 root      root        3 Mar 21 16:32 ntpd.pid
-rw-r--r-- 1 root      root        4 Mar 21 16:31 rngd.pid
drwxr-xr-x 2 openldap  openldap 4096 Mar 21 16:32 slapd
-rw-r----- 1 root      root        0 Mar 21 06:38 unattended-upgrades.lock

Erf curieux qu’il y ait autant de chose … je m’attendais à un problème plus général … On peut tenter de créer le dossier pour php mais ça me parrait suspect …

  • Tentons quand même mkdir /var/run/php/ puis chmod 755 /var/run/php et chown www-data:www-data /var/run/php (inspiré ce que j’ai sur un système “sain”). Puis tenter de redémarrer php7.3-fpm comme avant.
  • Sur mes serveurs je vois que normalement /var/run/ est un lien symbolique qui pointe vers /run/ … je me demande si pendant une copie de /var/ ou quoi, le concept de lien symbolique n’aurait pas été perdu … Si tu fais un ls -ld /run/ et un ls -l /run/, ça montre des choses ?

Le redémarrage du php7.3-fpm a fonctionné (en tout cas il ne m’affiche pas d’erreur).

Le ls -ld /run/ me donne:

drwxr-xr-x 27 root root 720 Mar 21 17:13 /run/

Et le ls -l /run/ donne:

total 12
-rw------- 1 root root 0 Mar 21 16:32 agetty.reload
drwxr-xr-x 2 avahi avahi 80 Mar 21 16:31 avahi-daemon
drwxr-xr-x 2 root root 80 Mar 21 16:31 blkid
drwxr-xr-x 2 root root 80 Mar 21 16:31 console-setup
---------- 1 root root 0 Mar 21 16:32 crond.reboot
drwxr-xr-x 2 dnsmasq nogroup 80 Mar 21 16:32 dnsmasq
drwxr-xr-x 2 root root 40 Mar 21 16:31 fail2ban
prw------- 1 root root 0 Feb 14 2019 initctl
drwxrwxrwt 3 root root 80 Mar 21 16:31 lock
drwxr-xr-x 3 root root 60 Mar 21 16:31 log
-rw-r–r-- 1 root root 80 Mar 21 17:13 motd.dynamic
drwxr-xr-x 2 root root 40 Feb 14 2019 mount
drwxr-xr-x 2 root root 100 Mar 21 16:31 network
-rw-r–r-- 1 root root 5 Mar 21 16:32 nginx.pid
drwxr-xr-x 2 www-data www-data 80 Mar 21 17:54 php
drwxrwsr-x 2 postgres postgres 40 Mar 21 16:31 postgresql
drwxr-xr-x 2 root root 60 Mar 21 16:31 postsrsd
drwxr-xr-x 3 root root 100 Mar 21 16:32 resolvconf
drwxr-xr-x 2 _rpc root 40 Mar 21 16:31 rpcbind
dr-xr-xr-x 11 root root 0 Feb 14 2019 rpc_pipefs
drwxr-xr-x 2 _rspamd _rspamd 40 Mar 21 16:32 rspamd
drwxr-xr-x 2 root root 40 Mar 21 16:31 samba
drwxr-xr-x 2 root root 40 Mar 21 16:31 sendsigs.omit.d
lrwxrwxrwx 1 root root 8 Mar 21 16:31 shm → /dev/shm
drwxr-xr-x 2 root root 40 Mar 21 16:32 sshd
-rw-r–r-- 1 root root 4 Mar 21 16:32 sshd.pid
drwx–x--x 3 root root 60 Jan 1 1970 sudo
drwxr-xr-x 2 root root 60 Mar 21 16:31 sysconfig
drwxr-xr-x 17 root root 420 Mar 21 17:38 systemd
srw-rw-rw- 1 root root 0 Mar 21 16:31 thd.socket
drwxr-xr-x 2 root root 60 Feb 14 2019 tmpfiles.d
drwxr-xr-x 7 root root 160 Mar 21 17:29 udev
drwxr-xr-x 2 root root 40 Mar 21 16:31 user
-rw-rw-r-- 1 root utmp 0 Mar 21 16:31 utmp

Je n’ai plus d’erreur 502 quand j’ouvre nextcloud. Je suis sur une page avec le graphisme nextcloud qui indique une erreur interne: “Erreur interne du serveur. Le serveur est incapable d’exécuter votre requête.” (plus l’adresse IP du serveur et un ID de demande)

Mouarf bon du coup je pense qu’il y avait bien avant un lien symbolique et que pendant le déménagement de /var/ il a disparu (c’est “normal” si c’était une copie brutale)

Du coup je pense que le plus simple c’est de recréer le lien symbolique. On peut tenter de faire ça naivement à chaud:

mv /var/run /var/run.bkp
ln -s /run /var/run

Puis redémarrer le système en espérant que tout se remette d’équerre

Quand je vais sur mon instance Nextcloud, il m’indique la même erreur interne que sur le message précédent.

Par contre l’onglet “service” de l’interface web est de nouveau accessible, et il indique un certain nombre de services en fail: etherpas_mypads (j’avais pas grand chose, c’est pas grave), mysql, postfix, postgresql, redis-server, syncthing (pareil si je le perd ça n’a aucune importance).

Oui car on a seulement réparé php mais potentiellement d’autres services avaient des choses dans /var/run ou /run … normalement si on remet en place le lien symbolique ça devrait aller mieux

Ce n’est pas ce que nous avons fait à ton précédent message?
Comment dois-je procéder?

Oui, tu as bien fait:

mv /var/run /var/run.bkp
ln -s /run /var/run

et redémarrer le serveur ?

Oui c’est ce que j’avais fait. Et ça me donnait ce qui est dans le post précédent (avec les services en fail):

@Aleks :
→ je viens d’avoir un message du forum m’indiquant que comme je suis nouvelle sur le forum, j’ai dépassé mon nombre de messages autorisés… je ne peux reprendre que dans 24h!!!
Voici ci-dessous les retours de ton dernier message:

Voici ce que j’ai en retour de la commande:

-- Logs begin at Sun 2021-03-21 18:03:28 GMT, end at Sun 2021-03-21 18:25:52 GMT. -- -- No entries --

Je désinstalle/réinstalle depuis l’onglet “Applications”? Il y a un souci là aussi car quand je clique sur le bouton vert “Installer”, j’ai ce message d’erreur:

Le serveur a fermé la connexion au lieu d’y répondre. Est-ce que NGINX ou l'API YunoHost aurait été redémarré ou arrêté ? (code/message d’erreur : 0 error)