502 Bad Gateway

Hello tout le monde,

Je ne sais pas si ça a un rapport mais après avoir mis à jour mon navigateur, et à sa réouverture, j’ai obtenu une erreur 502 Bad Gateway.

J’ai regardé du côté de nginx si tout allait bien :

[email protected]:/home/pickfungi# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

J’ai tenté de lancer directus manuellement et il m’a demandé d’installer des packages :

[email protected]:~$ npx directus start
Need to install the following packages:
  directus
Ok to proceed? (y) y
npm WARN deprecated @types/[email protected]: This is a stub types definition. pino provides its own type definitions, so you do not need this installed.
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: This module renamed to process-warning
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future
npm WARN deprecated [email protected]: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
10:15:46 ⚠️  Couldn't load extensions
10:15:46 ⚠️  Current folder does not contain a package.json file
10:15:46 🚨 "KEY" Environment Variable is missing.

Là, j’ai vu que mon fichier package.json avait disparu …

J’ai tenté de recréer ce fichier comme sur le cour :

{
  "name": "pickfungi",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "npx directus start",
    "test": "echo\"Error: no test specified\" && exit 1"
  },
  "keyword": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "directus": "^9.4.3",
    "mysql": "^2.18.1"
  }
}

J’ai tenté de réinstaller pm2 et ensuite de réexecuter la commande :

[email protected]:~$ pm2 start npm —-name «directus» —- start
[PM2] Spawning PM2 daemon with pm2_home=/home/pickfungi/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /home/pickfungi/.nvm/versions/node/v16.14.0/bin/npm in fork_mode (1 instance)
[PM2] Done.
[PM2][ERROR] Script not found: /home/pickfungi/—-name

Là, le script n’est pas trouvé …

J’ai remarqué que j’avais un fichier package-lock.json qui était maintenant présent dans le répertoire.

Je ne sais plus quoi faire et je ne comprends pas qu’il y ait eu ce problème sans la moindre intervention de ma part.

Help !!

Salut @Tazooou

Alors de ce que je comprends. T’avais déjà un directus qui tournait, tu as mis à jour ton navigateur et ça a planté avec un 502.
Quand cela se présente : On teste sur un autre navigateur, on vérifie dans l’inspecteur web les erreurs retournées, et parfois, un vidage de cache et cookies permet de régler le problème. y’a pas de raison que ce soit côté serveur SI tu n’y a pas touché et SI tu as bien mis QUE le navigateur à jour.

La, tu pars pour relancer un directus et il t’affiche ensuite qu’il faut l’installer. Pourquoi l’as-tu réinstallé? Il aurait fallu s’arrêter la et trouver le soucis. (un fichier conf pété? un lien cassé? bizarre sur l’unique mise à jour concerne le navigateur…).
Du coup, je pense qu’ensuite il s’emmêle les pinceaux dans les fichiers et que les liens sont pétés, avec une double installation quelques parts…

Selon moi, il faut faire un gros nettoyage de tout ça et repartir sur une base saine en reprenant les points 1 par 1, avant de continuer de nouveau.
En espérant avoir apporter un élément de réponse dans ton problème qui est malheureusement multiples ici.

[Edit] t’es sur que t’étais dans le bon dossier pour lancer ‹ npx directus start › ?

Hello @Mrt1,

J’ai effectué ces manips. Vider le cache, Relancer le cache, Changer de navigateur et j’ai même tester avec Postman. Toujours la même erreur.

Comment faire un gros nettoyage ? J’avais déjà cleaner le répertoire directus et la base de donnée.

Tu penses que je dois cleaner autres choses ? PM2 ? NGINX ?

C’est quand même bizarre que sur la mise à jour navigateur tout foire… t’as pas un service qui s’est mis à jour en automatique derrière? tu peux consulter les logs de ton serveur?

Perso sur un coup comme ça, je reprends tout par étape.

Je pense qu’il faut effectivement bien contrôler l’installation directus, puis les services autour.
Nginx a l’air d’être OK, donc j’y toucherai pas pour le moment.

Éventuellement, tu peux créer un autre utilisateur sur ton serveur pour repartir sur un truc sain.

Astuce : tu peux monitorer les services avec PM2 :

Je vais de mal en pire … ;-(

J’ai voulu repartir de zéro étant donné que je suis loin d’être à l’aise avec le terminal.

J’ai fait un rebuild sur Hetzner et maintenant impossible de me connecter sur le serveur …

[email protected] ~ % ssh pickfungi
ssh: connect to host 65.108.211.156 port 22: Connection refused
[email protected] ~ % ssh pickfungi
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:lc20bWp1ClVmHv6GeL65UshFr+wHhQG6gPiJvy6pMJM.
Please contact your system administrator.
Add correct host key in /Users/kevinyard/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/kevinyard/.ssh/known_hosts:3
Host key for 65.108.211.156 has changed and you have requested strict checking.
Host key verification failed.
[email protected] ~ % 

Je suis à deux doigts de supprimer le serveur et en recommander un !!

Ma clé SSH est toujours présente sur la console d’admin de Hetzner.

Qu’est-ce que je peux faire de plus ?

Aïe, effectivement, c’est pas ton jour… :neutral_face:

Pas bon signe. Alors, ce message peut apparaitre si tu n’es pas sur le bon serveur, ou si il a été réinstallé ou autre? Je vérifierai quand même.

Tu peux, si t’es sûr que le serveur n’a pas été manipulé par quelqu’un d’autre bypassé ça en manipulant le fichier known_hosts. (dans ‹ /Users/kevinyard/.ssh/known_hosts › )

Au choix :

1 - Tu peux supprimer (à la ligne 3 dans ton cas) la clef serveur. ça va reforcer le serveur à renvoyer le bon fingerprint de la clef, tu auras donc à la première reconnexion un message confirmant le fait qu’il faille refaire l’échange (en gros, sans rentrer dans les détails).

Ou
2 - rentrer la commande :

ssh-keygen -R [IP-DE-TON-SERVEUR]

Ce qui va forcer à mettre à jour le fingerprint de la clef serveur.

Ceci dit, c’est quand même un signe possible d’attaque ou de prise de commande à distance de ton serveur si tu n’as pas fait d’autres manip dessus. Tu peux contacter l’hébergeur pour en savoir plus.

[Edit] Je pense quand même qu’il s’est passé un truc pas clair sur ton serveur… Vérifie les logs et tout. Possiblement y’a quelque chose qui a foutu le bazard dans ton installation…

C’est bien moi qui ait demandé de tout réinstaller.

C’est bon je peux de nouveau accéder à un serveur tout neuf :slight_smile:

Merci beaucoup pour ton aide !

J’ai lu un peu vite, effectivement, si tu réinstalles tout, tu perds tes clefs, c’est donc normal qu’il t’affiche un gros message d’alerte :sweat_smile:

Pour l’instant tout se passe bien jusqu’à l’installation de la base de donnée.

J’ai tenté de me reconnecter avec Sequel Ace mais j’ai un problème à la connexion ssh :

Used command:  /usr/bin/ssh -v -N -S none -o ControlMaster=no -o ExitOnForwardFailure=yes -o ConnectTimeout=10 -o NumberOfPasswordPrompts=3 -o UserKnownHostsFile="/Users/kevinyard/Library/Containers/com.sequel-ace.sequel-ace/Data/.keys/ssh_known_hosts_strict" -F /Applications/Sequel Ace.app/Contents/Resources/ssh_config -i /Users/kevinyard/.ssh/id_pickfungi -o TCPKeepAlive=no -o ServerAliveInterval=60 -o ServerAliveCountMax=1 [email protected] -L 49656:localhost:3306

C’est quoi cette commande qui me demande d’exécuter ? Je deviens frileux sur les commandes exotiques :slight_smile:

J’ai également un soucis avec P2M.

Après avoir édité mon script dans le fichier package.json, je tente de démarrer P2M mais il me dit qu’il ne trouve pas le script :

[email protected]:~/pickfungi$ pm2 start npm —-name "directus" —- start
[PM2] Applying action restartProcessId on app [npm](ids: [ 0 ])
[PM2] [npm](0) ✓
[PM2] Process successfully started
[PM2][ERROR] Script not found: /home/pickfungi/pickfungi/—-name
[email protected]:~/pickfungi$ nano package.json
{
  "name": "pickfungi",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "npx directus start",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "directus": "^9.5.2",
    "mysql": "^2.18.1"
  }
}

Tu as bien changé la key aussi sur Sequel Ace? J’ai l’impression qu’il a gardé l’ancienne justement pour se connecter.

Je n’ai pas regénéré de clef ssh pour me connecter à mon serveur. J’ai gardé l’ancienne clef que j’avais créé au debut de projet. Et je l’ai remise sur Sequel Ace.

Et tu peux lancer un ‹ npx directus start › en dehors de PM2? ça marche?

La commande ssh me parait normal en première lecture. Elle définie les paramêtres de connexion ssh pour le logiciel de ce que je vois.

Oui j’arrive à lancer directus et à me connecter via un navigateur

Pour pm2, je viens de trouver … Je copiais les commandes depuis TextEdit et il aime pas du tout la transformation des tirets.
J’ai retapé la commande à la main et la tout fonctionne !!
Leçon du jour : « Ne jamais copier les commandes depuis un éditeur de texte » :smiley:

1 « J'aime »

Bonne remarque, je rajouterais : Ne jamais copier les commandes tout court, même du net. Des caractères insidieux peuvent se glisser dans les commandes. Il est préférable de les taper à chaque fois.

De plus, Textedit et autres blocs-notes de textes peuvent changer le texte avec du RTF ou autre. Il faut mieux passer par des éditeurs comme Sublime Text ou VS Code pour taper tout ce qui est en rapport avec du code.

J’arrive toujours pas à me connecter à Sequel Ace … :sweat_smile:

J’essaie de retrouver le fichier UserKnownHostsFile="/Users/kevinyard/Library/Containers/com.sequel-ace.sequel-ace/Data/.keys/ssh_known_hosts_strict" mais je ne sais pas trop où le trouver. C’est bien un fichier sur mon MacBook ? Je ne trouve pas le répertoire Library …
J’ai tenté de lancer la commande sur le terminal mais ca n’a fait aucun changement.

@mbritto, @Mrt1, Help :slight_smile:

Il est caché par défaut.
Va dans le Finder, dans la barre de menu tout en haut, sur ‹ Aller › puis appuie sur la touche ‹ alt › et tu devrais voir apparaitre le dossier ‹ Bibliothèque ›
sinon, tu peux aller dans ‹ Aller ›, puis ‹ Aller dans le dossier › et taper à la main le chemin.

C’est tout bon !! Merci beaucoup :slight_smile: