502 Mauvaise passerelle
Le serveur web a atteint PHP et PHP n'a pas répondu. Nginx ou Apache est en train de signaler une conversation qui s'est terminée avant qu'elle ne commence.
502 Bad Gateway
PHP-FPM est soit en panne, soit ses travailleurs sont tous occupés. Vérifiez si le processus est en cours avant tout autre chose - un pool arrêté et un pool saturé produisent la même page et ont besoin de corrections différentes.
Les causes les plus probables d’abord.
Parcourez la liste dans l’ordre. Vérifiez chaque cause avant de modifier quoi que ce soit : les correctifs diffèrent et une supposition coûte plus cher qu’une commande.
| Cause | Comment vérifier | Correctif |
|---|---|---|
| PHP-FPM n'est pas en cours d'exécution | Le statut du service indique inactive ou échoué. Le journal du serveur web indique "connect() a échoué" ou "pas de live en amont". | Commencer, puis lire pourquoi il s'est arrêté. Une piscine qui sortait de lui-même le faisait généralement parce que la machine était à court de mémoire. |
| Chaque travailleur est occupé | Le pool de processus fonctionne, les erreurs 502 surviennent par vagues sous la charge, et le journal indique un délai d’attente dépassé en amont plutôt qu’un refus de connexion. | Trouver la demande lente occupant les travailleurs. Ajouter des travailleurs affamés d'un point de départ lent achète des minutes, pas une solution. |
| Le chemin ou le port de la socket est incorrect | Chaque requête 502s, toujours, y compris les URL statiques qui traversent PHP. Le journal nomme une socket qui n'existe pas. | Pointez le serveur web sur la prise de courant du pool. Ceci apparaît juste après une modification de version PHP. |
| Un travailleur s'est écrasé en milieu de demande | Le journal PHP-FPM enregistre un segfault ou un enfant sortant d'un signal, chronométré à la requête. | Identifier l'extension en cause. Un segfault est rarement un code WordPress - c'est généralement une entrée de réunion d'extension native qu'il ne s'attendait pas. |
| Un proxy devant est en train de se terminer | L'origine sert l'amende de page sur demande directe, et seulement l'URL publique 502s. | Levez le temps de lecture du proxy, ou faites la réponse lente plus rapidement. L'origine n'est pas la chose à changer ici. |
Corriger l’erreur, étape par étape.
Les commandes supposent un accès à WP-CLI et au terminal. Si vous n’en disposez pas, chaque étape explique comment procéder depuis le tableau de bord ou via SFTP.
Demandez si PHP fonctionne du tout
Cette réponse supprime la moitié des possibilités.
systemctl status php8.5-fpm --no-pager | head -n 12
Lire le journal du serveur web pour la plainte exacte en amont
"Connection refusée" et "en amont" signifient différentes choses et pointent à différentes sections ci-dessus.
grep -E 'upstream|502' /var/log/nginx/error.log | tail -n 20
Regardez le journal PHP-FPM pour les pannes
Sorties sur un signal, et avertissements que tous les enfants sont occupés, les deux vivent ici.
tail -n 40 /var/log/php8.5-fpm.log
Voyez ce que font les travailleurs.
S'ils sont tous occupés par la même URL, vous avez trouvé le point final lent.
wp cron event list --fields=hook,next_run_relative --status=due
Redémarrez la piscine une fois que vous savez pourquoi
Un redémarrage efface le symptôme. Faire sans lire le journal signifie le refaire demain.
systemctl restart php8.5-fpm
Ce que la plateforme prend en charge.
Chaque site a son propre pool PHP-FPM dans son propre conteneur avec sa propre limite de mémoire, de sorte qu'un site épuisant ses travailleurs ne peut pas 502 - l'échec reste là où il a commencé. Redémarrer les services est un bouton plutôt qu'une session SSH, et parce que le pool est dimensionné avec le plan plutôt que partagé sur une machine entière, un voisin occupé n'est pas l'une des causes de cette liste.
Questions fréquentes.
Est-ce que 502 est ma faute ou celle de l'hôte ?
Pourquoi redémarrer PHP le réparer pendant un moment ?
Un seul plugin peut-il causer un 502 sur tout le site ?
En quoi est-ce différent d'un 504 ?
Si le problème vient d’ailleurs.
Ces erreurs peuvent se présenter de façon similaire dans le navigateur.