Comment réparer l'erreur 504 Gateway Timeout sur votre site WordPress

Publié: 2020-10-26

L'erreur 504 Gateway Timeout est l'une des erreurs HTTP 5xx les plus courantes rencontrées par les propriétaires de sites Web et les visiteurs du site. Pour de nombreux blogs WordPress et plates-formes de commerce électronique, savoir comment corriger les erreurs de serveur comme celle-ci est crucial pour empêcher leurs visiteurs durement gagnés de rebondir sur les sites concurrents.

Comme l'erreur 504 Gateway Timeout ne vous dit pas pourquoi elle s'est produite, il est difficile d'identifier la cause du délai d'attente du serveur. Cet article vous aidera à le comprendre en détail, à apprendre à diagnostiquer sa cause, puis à le réparer.

Après avoir essayé toutes les différentes solutions mentionnées dans l'article, votre site devrait être opérationnel en un rien de temps.

Ça a l'air intéressant? Plongeons-nous !

Vous préférez regarder la version vidéo ?

L'erreur 504 Gateway Timeout est l'une des erreurs HTTP 5xx les plus courantes rencontrées par les propriétaires de sites Web et les visiteurs du site. Apprenez à résoudre ce problème rapidement grâce à ce guide. Cliquez pour tweeter

Qu'est-ce que l'erreur 504 Gateway Timeout ?

Chaque fois que vous visitez un site Web dans votre navigateur, le navigateur envoie une demande au serveur Web sur lequel le site est hébergé. Le serveur traite la demande et répond avec les ressources demandées.

Illustration du fonctionnement des requêtes et des réponses HTTP
Fonctionnement des requêtes et des réponses HTTP.

La réponse du serveur inclut l'un des nombreux codes d'état HTTP pour indiquer l'état de la réponse au navigateur. Mais tous ces codes d'état HTTP ne sont pas des erreurs. Par exemple, un code d'état 200 OK signifie que le serveur a traité la demande avec succès et "Tout va bien".

La classe 5xx des codes d'état HTTP indique que quelque chose ne va pas avec le serveur, le serveur en est conscient et il ne peut pas exécuter la demande du client. Par conséquent, ils sont également appelés codes d'état Server Error 5xx .

Officiellement, cinq codes de statut sont spécifiés sous la classe 5xx (500, 501, 502, 503, 504). Vous pouvez également rencontrer de nombreux codes non officiels (506, 507, 509, 520, etc.).

L'Internet Engineering Task Force (IETF) définit l'erreur 504 Gateway Timeout comme suit :

Le code d'état 504 (Gateway Timeout) indique que le serveur, tout en agissant en tant que passerelle ou proxy, n'a pas reçu de réponse en temps opportun d'un serveur en amont auquel il devait accéder pour traiter la demande.

Pour simplifier davantage, cette erreur se produit lorsque deux serveurs sont impliqués dans le traitement d'une requête. Le premier serveur (généralement le serveur principal) expire, attendant une réponse du second serveur (serveur en amont).

L'erreur 504 Gateway Timeout se manifeste sous diverses formes. Voici quelques façons dont il apparaît généralement :

L'ERREUR HTTP 504 dans le navigateur Chrome
Le 'HTTP ERROR 504' dans le navigateur Chrome.

L'erreur 504 Gateway Timeout est similaire à l'erreur 502 Bad Gateway, qui indique que le premier serveur a reçu une réponse non valide du second serveur (serveur en amont).

Code d'état 504 GATEWAY TIMEOUT dans Chrome DevTools
Le code d'état '504 GATEWAY TIMEOUT' dans Chrome DevTools.

Variations de l'erreur 504 Gateway Timeout

Le navigateur affiche toute erreur 504 Gateway Timeout à l'intérieur, comme toute autre erreur. Comme il existe différents systèmes d'exploitation, serveurs Web, navigateurs et agents utilisateurs, il peut apparaître de plusieurs manières.

Vous trouverez ci-dessous quelques variantes courantes des messages d'erreur 504 que vous pouvez rencontrer :

  • 504 portail expiré
  • 504 Délai d'expiration de la passerelle NGINX
  • Délai d'expiration de la passerelle NGINX 504
  • Erreur de dépassement de délai de passerelle
  • Erreur 504
  • Erreur HTTP 504
  • Erreur HTTP 504 — Délai d'expiration de la passerelle
  • HTTP 504
  • Erreur 504
  • Délai d'expiration de la passerelle (504)
  • Cette page ne fonctionne pas — Le domaine a mis trop de temps à répondre
  • 504 Gateway Time-out — Le serveur n'a pas répondu à temps
  • La demande de page a été annulée car elle a mis trop de temps à se terminer
  • Visiteurs du site : un problème est survenu lors du traitement de votre demande, veuillez réessayer dans quelques minutes.
  • Propriétaires de sites : il y a eu un délai d'expiration de la passerelle. Vous devriez consulter votre journal des erreurs pour plus d'informations.
  • Un écran blanc vierge

Toutes les réponses d'erreur ci-dessus, bien que formulées différemment, pointent vers la même erreur de serveur 504 Gateway Timeout.

Les serveurs Web et les sites Web peuvent personnaliser la manière dont ils affichent l'erreur 504 Gateway Timeout aux utilisateurs. Certains d'entre eux peuvent être cool! C'est une excellente tactique pour calmer la déception de leurs visiteurs.

Page d'erreur HTTP 504 personnalisée de GitHub
Page d'erreur HTTP 504 personnalisée de GitHub.

Impact SEO de l'erreur 504 Gateway Timeout

Toutes les erreurs 5xx empêchent le chargement d'une page Web, ce qui nuit à l'expérience utilisateur. Par conséquent, les moteurs de recherche comme Google prennent ces erreurs au sérieux. Si l'erreur persiste pendant une longue durée, cela peut même conduire à désindexer la page Web des résultats du moteur de recherche.

Par exemple, lorsque les araignées de Google tombent sur une erreur 503 Service non disponible, elles comprendront qu'il s'agit d'un problème temporaire car il est principalement utilisé pour activer le mode de maintenance du site. Ainsi, ils essaieront de parcourir à nouveau la page plus tard.

Une erreur 504 Gateway Timeout n'est pas nécessairement temporaire car elle peut être due à plusieurs raisons. Si votre site est indisponible pendant quelques minutes seulement et si les araignées essaient de l'explorer plusieurs fois par minute, elles essaieront de servir la page à partir de leur cache. Ils ne le remarqueraient même pas.

Mais si votre site est indisponible pendant plus de 6 heures ou plus, Google considérera l'erreur 504 comme un problème sérieux à l'échelle du site que vous devez résoudre dès que possible. Cela peut avoir un impact négatif sur votre référencement.

Affichage des erreurs de crawl dans Google Search Console
Affichage des erreurs de crawl dans Google Search Console

Google Search Console est l'un des meilleurs outils de référencement pour surveiller les erreurs HTTP 5xx de votre site Web.

Causes de l'erreur 504 Gateway Timeout

Comme l'erreur 504 est due à un délai d'attente entre les serveurs, le problème ne vient probablement pas de l'appareil ou de la connexion Internet du client. Cela inclut également votre appareil et votre connexion.

Une erreur 504 Gateway Timeout indique que le serveur Web attend trop longtemps pour répondre d'un autre serveur et "expire". Il peut y avoir plusieurs raisons à ce délai : l'autre serveur ne fonctionne pas correctement, est surchargé ou en panne.

L'autre serveur ne doit pas toujours être externe (par exemple CDN, passerelle API). Il peut également s'agir d'une entité de type serveur au sein du serveur Web principal (par exemple, serveur proxy inverse, serveur de base de données).

Comment réparer l'erreur d'expiration du délai de passerelle 504

Sans connaître les détails exacts du site WordPress, tels que la configuration de son serveur, son plan d'hébergement, ses plugins tiers et le trafic qu'il attire, vous pouvez trouver frustrant et accablant de corriger une erreur 504 Gateway Timeout.

Étant donné que de nombreuses variables sont impliquées, je vous recommande de commencer par résoudre les problèmes côté client, qui sont assez rares, puis de passer à la résolution des problèmes côté serveur. Ils sont généralement les coupables avec des erreurs 504.

Essayez de recharger la page Web

L'une des premières choses que vous pouvez essayer lorsque vous rencontrez une erreur 504 Gateway Timeout est d'attendre quelques minutes et d'essayer de recharger la page.

Vous pouvez appuyer sur le raccourci clavier F5 pour actualiser/recharger la page Web dans la plupart des navigateurs. Pour supprimer le cache du navigateur de la page avant le rechargement, vous pouvez appuyer sur la combinaison de raccourcis CTRL+F5 à la place.

Actualisation d'une page Web dans le navigateur Chrome
Actualisation d'une page Web dans le navigateur Chrome

Pendant que vous y êtes, vous pouvez également essayer de charger le site dans un autre navigateur pour éliminer ce problème. Comme la plupart des erreurs 504 sont dues à des serveurs temporairement surchargés, l'utilisation de cette solution devrait faire revenir votre site immédiatement.

Si l'attente et le rechargement du site ne résolvent pas le problème d'erreur 504, vous pouvez vérifier si un site est en panne pour tout le monde ou uniquement pour vous. Deux outils en ligne utiles pour tester les temps d'arrêt d'un site sont Down for Everyone ou Just Me and Is It Down Right Now?

Tester Kinsta.com sur Down for Everyone ou Just Me
Tester Kinsta.com sur Down for Everyone ou Just Me

Redémarrez vos périphériques réseau

Parfois, des problèmes avec vos périphériques réseau tels qu'un modem ou un routeur peuvent entraîner une erreur 504 Gateway Timeout. Le redémarrage de ces appareils peut vous aider à résoudre le problème.

Bien que vous puissiez éteindre tous ces périphériques réseau dans n'importe quel ordre, l'ordre dans lequel vous les rallumez est important. En règle générale, allumez ces appareils de «l'extérieur vers l'intérieur», en suivant l'ordre de connexion du fournisseur de services Internet à votre appareil client principal.

Vérifiez vos paramètres proxy

Un serveur proxy se situe entre votre appareil et Internet. Il est principalement utilisé pour améliorer la confidentialité en ligne en masquant les informations privées (par exemple, l'emplacement de l'appareil) des sites Web et des serveurs Web (par exemple, à l'aide d'un VPN).

Bien qu'il soit rare que les serveurs proxy provoquent une erreur 504, des paramètres de serveur proxy incorrects peuvent parfois en être la cause. Vous pouvez désactiver le serveur proxy et essayer de recharger la page Web pour voir si cela résoudra l'erreur.

Modification des paramètres "Proxy" dans Windows 10
Modification des paramètres 'Proxy' dans Windows 10

La plupart des clients n'utilisent pas de service proxy, vous pouvez donc ignorer cette étape si vous êtes sûr de ne pas utiliser de serveur proxy. Cependant, vous l'avez peut-être défini sans même le savoir. Je vous suggère de vérifier les paramètres de proxy de votre appareil et de votre navigateur pour exclure cette cause.

Problèmes DNS

Une erreur 504 Gateway Timeout peut également être causée par des problèmes DNS côté serveur ou côté client (ou les deux).

La raison la plus probable d'un problème DNS côté serveur est que le FQDN (nom de domaine complet) ne résout pas l'adresse IP correcte ou que le serveur DNS ne répond pas . Habituellement, cela se produit lorsque vous venez de migrer votre site WordPress vers un nouveau serveur ou hôte. Par conséquent, il est important d'attendre que les enregistrements DNS du domaine se propagent complètement, ce qui peut prendre jusqu'à 24 heures.

Vous pouvez utiliser des outils gratuits comme whatsmydns.net DNS Checker ou DNSMap pour voir si votre DNS s'est propagé dans le monde entier.

Vérification de la propagation DNS pour votre domaine sur whatsmydns.net
Vérification de la propagation DNS pour votre domaine sur whatsmydns.net

Pour résoudre les problèmes de DNS côté client, vous pouvez essayer de vider votre cache DNS local. C'est comme vider le cache de votre navigateur, sauf qu'ici, vous videz le cache DNS du système d'exploitation.

Si vous utilisez Windows, vous pouvez vider le cache DNS en ouvrant l'invite de commande et en saisissant la directive suivante :

 ipconfig /flushdns
Vider le cache DNS avec l'invite de commande
Vider le cache DNS avec l'invite de commande sous Windows

Vous devriez voir un "Vidage réussi du cache du résolveur DNS". message si cela a fonctionné.

Pour les dernières versions de macOS, vous pouvez ouvrir le Terminal et exécuter la commande suivante :

 sudo killall -HUP mDNSResponder

Vous ne verrez aucune notification dans macOS lorsque le processus se terminera, mais vous pouvez changer cela en ajoutant la commande à votre message personnalisé.

 sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully

Si vous utilisez des versions plus anciennes de macOS, la commande que vous devez saisir varie en fonction de la version de macOS que vous utilisez. Pour plus de détails, vous pouvez vous référer à la section macOS du tutoriel DNS approfondi de Kinsta.

Si vous utilisez le système d'exploitation Linux, le processus est assez similaire à macOS car même Linux utilise le terminal comme interface de ligne de commande. Comme il existe de nombreuses distributions Linux, la commande exacte que vous devez exécuter peut varier d'une distribution à l'autre. Vous pouvez consulter le guide de Kinsta pour plus d'informations.

Enfin, vous pouvez modifier temporairement vos serveurs DNS côté client. Par défaut, votre FAI vous attribue automatiquement les serveurs DNS. Mais vous pouvez les remplacer temporairement par des IP DNS publiques.

Certains serveurs DNS fiables que vous pouvez essayer sont Google Public DNS, Cloudflare 1.1.1.1, Quad9 DNS et Cisco OpenDNS.

Paramètres des serveurs DNS personnalisés dans Windows 10
Paramètres des serveurs DNS personnalisés dans Windows 10

Désactiver temporairement le CDN de votre site

Parfois, le problème peut également être lié à votre réseau de diffusion de contenu (CDN). Si le serveur d'origine d'un site n'est pas accessible, la plupart des CDN essaieront de servir la page Web complète à partir de leur cache.

Mais la plupart des CDN n'activent pas cette fonctionnalité par défaut car il est complexe de mettre en cache des actifs dynamiques sur la plupart des sites (par exemple, le tableau de bord d'administration WordPress).

Définition de la règle de page « Tout mettre en cache » dans Cloudflare
Définition de la règle de page « Tout mettre en cache » dans Cloudflare

Un moyen simple de résoudre ce problème consiste à désactiver temporairement votre CDN. Par exemple, si vous utilisez le plugin WordPress CDN Enabler gratuit pour lier les actifs de votre site aux URL CDN, vous pouvez désactiver le plugin et tester le rechargement de votre site.

Il en va de même pour l'utilisation de tout autre plugin que vous pourriez utiliser pour vous connecter à votre CDN (par exemple WP Rocket, Breeze, W3 Total Cache).

Si vous ne pouvez pas accéder au tableau de bord d'administration de votre site, vous pouvez désactiver le plugin via SFTP en renommant le nom du dossier du plugin.

Désactivez tous les plugins via SFTP en renommant le nom du dossier des plugins
Désactivez tous les plugins via SFTP en renommant le nom du dossier des plugins

Les CDN comme Cloudflare ou Sucuri, qui fournissent des services proxy complets, ont des pare-feu supplémentaires entre leurs serveurs périphériques et votre serveur d'origine. Par conséquent, vous pouvez rencontrer plus fréquemment des erreurs HTTP 5xx lors de leur utilisation. La plupart d'entre eux cachent les erreurs 5xx renvoyées par votre serveur d'origine, il est donc facile de les résoudre.

Le plan gratuit de Cloudflare est susceptible de générer une erreur 5xx. Malheureusement, comme il s'agit d'un service proxy complet, il n'existe aucun moyen rapide de le désactiver. Mais avant de blâmer Cloudflare pour cela, sachez que Cloudflare affiche deux variantes de l'erreur 504 Gateway Timeout.

504 Gateway Timeout chez Cloudflare (variante 1)

Cloudflare vous montrera un écran d'erreur personnalisé 504 Gateway Timeout lorsque le serveur d'origine de votre site répondra avec une réponse HTTP 504 standard.

Écran d'erreur 504 personnalisé de Cloudflare
Écran d'erreur 504 personnalisé de Cloudflare

Ici, le problème réside dans votre serveur Web et non dans Cloudflare. Vous pouvez essayer de le réparer avec les autres solutions mentionnées ci-dessous ou contacter le support de votre hébergeur pour obtenir une aide technique.

504 Gateway Timeout chez Cloudflare (variante 2)

Si Cloudflare provoque l'erreur 504 Gateway Timeout, l'écran d'erreur mentionnera « cloudflare », qui est actuellement le nom de serveur standard pour tous les actifs Cloudflare. Habituellement, l'écran d'erreur apparaîtra comme ci-dessous :

Erreur 504 Gateway Timeout causée par Cloudflare
Écran d'erreur pour 504 Gateway Timeout causé par Cloudflare

Étant donné que Cloudflare lui-même ne répond pas, vous ne verrez aucun écran d'erreur de marque Cloudflare ici.

Très probablement, Cloudflare est déjà conscient du problème et travaille déjà sur un correctif. Vous pouvez le confirmer en consultant la page Web Cloudflare System Status. Vous pouvez également contacter le support Cloudflare pour une résolution plus rapide.

Vérifiez l'état du système Cloudflare sur cloudflarestatus.com
Vérifiez l'état du système Cloudflare sur cloudflarestatus.com

504 Gateway Timeout chez Cloudflare en raison de téléchargements volumineux

La taille de vos téléchargements sur votre site peut également être une raison des délais d'attente du serveur. Cloudflare limite la taille du fichier de téléchargement (par requête HTTP POST) à seulement 100 Mo sur les plans Free et Pro.

Limites de « taille maximale de téléchargement » de Cloudflare pour divers forfaits
Limites de « taille maximale de téléchargement » de Cloudflare pour divers forfaits

Le problème peut provenir de votre hôte ou de Cloudflare. Vous pouvez trouver la cause exacte en contournant Cloudflare avec votre fichier d'hôtes DNS et en réessayant votre téléchargement.

Si vous utilisez Cloudflare avec WordPress, je vous recommande d'utiliser leur plugin gratuit et d'exclure les URL critiques de la mise en cache (comme le tableau de bord d'administration WordPress). Vous pouvez vous référer à l'article détaillé de Kinsta sur la configuration des paramètres Cloudflare pour WordPress.

Lecture suggérée : Comment configurer Cloudflare APO pour WordPress.

Problèmes de serveur (vérifiez auprès de votre hôte)

Les problèmes de serveur sont l'une des raisons les plus courantes de faire face à une erreur 504 Gateway Timeout. Étant donné que la plupart des sites WordPress sont hébergés sur des serveurs Web Nginx ou Apache, Nginx ou Apache attend une réponse de quelque chose et expire.

De nombreux clients viennent chez Kinsta pour exactement ce problème auquel ils sont confrontés chez d'autres hébergeurs WordPress. La conversation ressemble à ceci :

Nous recevons environ 100 000 visiteurs par mois avec plus de 200 000 vues. Actuellement, nous hébergeons avec ____ et nous rencontrons constamment des erreurs 504 en raison de la surcharge du serveur. Je n'aime pas la façon dont ____ a géré le problème, et nous avons également été informés que nous devrons bientôt passer à leurs plans dédiés, ce qui, à mon avis, n'est pas nécessaire.

Les sites à fort trafic et de commerce électronique sont plus susceptibles d'obtenir des erreurs 504 en raison de la surcharge du serveur, car ils génèrent de nombreuses requêtes impossibles à mettre en cache. Cependant, ce problème peut survenir avec n'importe quel site, y compris les blogs simples. De nombreux hôtes vous demanderont de passer à un plan de niveau supérieur pour résoudre le problème, ce qui dans la plupart des cas n'est pas nécessaire.

Kinsta utilise des hôtes gérés LXD et des conteneurs logiciels LXC orchestrés pour chaque site. Ainsi, chaque site WordPress est hébergé dans son propre conteneur isolé avec accès à tous les logiciels nécessaires à son fonctionnement (Linux, Nginx, PHP, MySQL). Les ressources sont 100% privées et ne sont partagées avec aucun autre site, même vos sites.

La plupart des hébergeurs WordPress proposant des plans d'hébergement partagé n'ont pas cette capacité. Par conséquent, un site à fort trafic hébergé sur le même serveur que le vôtre peut également entraîner une erreur 504 sur votre site.

En plus d'isoler chaque site dans son conteneur, Kinsta a également conçu son infrastructure pour gérer facilement des milliers de connexions simultanées. Kinsta héberge même les bases de données MySQL sur localhost, pas sur un serveur distant. Cela signifie qu'il n'y a pas de latence entre les machines, ce qui se traduit par des requêtes plus rapides et moins de risques de dépassement de délai.

De nombreux clients qui migrent vers Kinsta voient d'énormes diminutions des temps de chargement globaux.

Une augmentation de 212,5% des performances après le passage à C2.
Une augmentation de 212,5% des performances après le passage à C2.

Un serveur surchargé n'est pas la seule cause d'expiration du serveur. L'erreur 504 peut avoir de nombreuses autres raisons :

Infrastructure de serveur lente

Le serveur que vous utilisez pour héberger votre site WordPress peut ne pas disposer de suffisamment de ressources pour gérer la charge. C'est comme jouer à un jeu vidéo moderne à forte intensité graphique sur un PC vieux de dix ans.

Le serveur raccroche simplement en essayant de servir le site Web. La seule solution à ce problème est de passer à un serveur avec une meilleure infrastructure. Pour cette raison, même le plan d'hébergement WordPress le plus basique de Kinsta gérera un site statique avec un trafic moyen.

A besoin de plus de travailleurs PHP

Les workers PHP sont utilisés pour exécuter le code de votre site WordPress. Un site de commerce électronique qui reçoit 50 000 visiteurs par mois a besoin de beaucoup plus de ressources qu'un simple blog avec le même trafic. Si tous les workers PHP du serveur sont occupés, ils créeront une file d'attente.

Lorsque la file d'attente devient trop grande, le serveur ignore les anciennes requêtes, ce qui peut amener le serveur à générer une erreur de passerelle 504. Vous pouvez demander à votre hébergeur d'augmenter votre nombre de travailleurs PHP. Cela permettra à votre site d'exécuter plusieurs requêtes simultanément.

Problèmes de pare-feu

Le pare-feu de votre serveur peut avoir des erreurs ou une configuration incorrecte. Peut-être que certaines de ses règles empêchent le serveur d'établir correctement une connexion. Pour savoir si votre pare-feu est le coupable, vous pouvez consulter les journaux d'erreurs de votre serveur.

Problèmes de connectivité réseau

Les problèmes de connectivité entre le serveur proxy et le serveur Web peuvent retarder la réponse aux requêtes HTTP. Si vous utilisez un équilibreur de charge, il peut également y avoir des problèmes de connectivité réseau avec celui-ci.

Délais HTTP

Des délais d'attente HTTP peuvent se produire lorsqu'une connexion entre le serveur Web et le client est maintenue ouverte trop longtemps. Avec les sites WordPress, cela se produit généralement lors de l'exécution d'importations WordPress. Une façon de résoudre ce problème consiste à passer à une connexion Internet plus rapide.

Vous pouvez également utiliser un outil prenant en charge WP-CLI pour exécuter les scripts directement sur le serveur, en contournant entièrement la connexion HTTP. Par exemple, vous pouvez utiliser la commande wp import WP-CLI pour exécuter le plugin WordPress Importer directement via l'interface de ligne de commande.

Important : les erreurs 504 Gateway Timeout ressemblent aux erreurs 503 Service Unavailable ou 502 Bad Gateway. Mais ils sont tous différents. Si vous rencontrez une erreur 504 chez Kinsta, ouvrez un ticket d'assistance pour que votre problème soit résolu immédiatement.

Pour surveiller vous-même les temps d'arrêt de votre site, vous pouvez utiliser un outil comme updown.io. Il vérifiera périodiquement l'état de votre site Web (ou de toute URL) en lui envoyant une requête HTTP. Vous pouvez régler la fréquence de vérification de 15 secondes à 1 heure. Si votre site Web ne répond pas correctement, il vous en informera par e-mail ou par SMS.

Surveillez votre site Web avec updown.io
Surveillez facilement votre site Web avec updown.io

Vous obtiendrez une quantité généreuse de crédits gratuits avec chaque compte updown.io, mais si vous recherchez des alternatives moins chères, vous pouvez consulter WebGazer ou UptimeRobot. Ces deux outils vous aideront à surveiller gratuitement la disponibilité de votre site toutes les 5 minutes. C'est assez décent pour la plupart des propriétaires de sites Web.

Tableau de bord de l'outil de surveillance de site Web WebGazer
Tableau de bord de l'outil de surveillance de site Web WebGazer

La surveillance de votre site Web vous donnera une idée de la fréquence à laquelle il est en panne. Ceci est particulièrement utile si vous utilisez un fournisseur d'hébergement partagé. La plupart des hébergeurs WordPress gérés s'en chargent automatiquement pour vous. Il est donc toujours recommandé de les accompagner.

Pour une explication détaillée, consultez le post de Kinsta sur l'importance de l'hébergement WordPress infogéré.

Spam, bots ou attaques DDoS

Des attaquants malveillants peuvent amener votre serveur Web à une exploration en envoyant trop de requêtes et/ou en consommant beaucoup de ressources. Si votre site est spammé par des bots ou subit une attaque DDoS, cela peut submerger votre serveur et entraîner des erreurs 504 Gateway Timeout pour de nombreux utilisateurs authentiques.

Vous pouvez consulter le trafic et les analyses de votre serveur pour voir si vous pouvez repérer des modèles irréguliers dans le trafic du site. Si vous utilisez Kinsta pour héberger votre site, vous pouvez facilement consulter ces données en accédant à votre tableau de bord MyKinsta Analytics.

Tableau de bord MyKinsta Analytics
Tableau de bord MyKinsta Analytics

Commencez votre enquête en examinant les principales adresses IP des clients. Cela vous donnera une idée de qui génère le nombre maximum de demandes, et d'où. Si votre serveur utilise soudainement une énorme bande passante ou attire beaucoup de trafic, ce rapport vous sera très utile.

Affichage des 'Top Client IPs' dans le tableau de bord MyKinsta
Affichage des 'Top Client IPs' dans le tableau de bord MyKinsta

Ensuite, vous pouvez consulter le rapport d'analyse du cache . Ici, vous pouvez voir combien de requêtes contournent ou manquent le cache, ou sont servies à partir du cache. Pour des raisons de performances et de stabilité, vous souhaitez mettre en cache autant de requêtes que possible, mais il n'est pas toujours possible d'y parvenir.

Par exemple, les sites WooCommerce génèrent de nombreuses demandes impossibles à mettre en cache pour des fonctionnalités telles que le panier d'achat et le processus de paiement.

L'écran « Analyse du cache » dans MyKinsta
L'écran 'Cache Analysis' dans MyKinsta

Enfin, vous pouvez utiliser un plugin de sécurité WordPress pour renforcer la sécurité de votre site Web en repérant et en bloquant le trafic/les IP inquiétants. Vous pouvez également demander à votre hébergeur de bloquer certaines adresses IP.

Aux prises avec des temps d'arrêt et des problèmes WordPress? Kinsta est la solution d'hébergement conçue dans un souci de performance et de sécurité ! Découvrez nos forfaits

Selon la durée et l'ampleur de l'attaque, cela pourrait être un processus sans fin de mise sur liste noire des adresses IP, car de nombreux attaquants changent leurs adresses IP et proxy après avoir été bloqués.

Remarque : Kinsta n'autorise pas ses clients à installer des plugins de sécurité WordPress car ils peuvent avoir un effet considérable sur les performances du site, en particulier ses capacités d'analyse. Comme Kinsta utilise des équilibreurs de charge avec Google Cloud Platform, le blocage des adresses IP ne fonctionnerait pas toujours comme prévu.

Vous pouvez utiliser des solutions de sécurité dédiées telles que Cloudflare ou Sucuri pour protéger vos sites des attaques DDoS et des spambots. Pour en savoir plus, vous pouvez consulter les articles de Kinsta sur la façon d'installer Cloudflare sur votre site WordPress et comment Sucuri a aidé à arrêter une attaque DDoS dans son élan.

Base de données WordPress corrompue

Parfois, une erreur 504 Gateway Timeout peut être due à une base de données corrompue, en particulier sur les sites WordPress. Cela est généralement dû à des tables ou à des fichiers de base de données corrompus. Parfois, cela peut également être causé par un grave problème de sécurité, comme le piratage de votre site ou de votre base de données.

La réparation d'une base de données WordPress corrompue dépend du problème. Des plugins comme WP-DBManager facilitent le diagnostic des problèmes de base de données et les réparent. Je vous recommande de lire la procédure pas à pas détaillée de Kinsta sur la réparation des problèmes de base de données WordPress pour commencer.

Vérifiez les plugins et les thèmes de votre site

Dans la plupart des cas, les plugins et thèmes tiers ne provoquent pas d'erreurs 504. Mais il y a une petite chance qu'ils provoquent des délais d'attente du serveur, généralement en mettant en file d'attente de nombreuses requêtes non mises en cache générées par le plugin/thème. Comme cela mobilise un grand nombre de travailleurs PHP de votre serveur, cela peut provoquer des erreurs 504.

Un bon exemple de ce problème est WooCommerce, un plugin installé pour ajouter des fonctionnalités de commerce électronique aux sites WordPress.

La façon la plus simple de résoudre ce problème est de désactiver tous vos plugins. N'oubliez pas que vous ne perdrez aucune donnée si vous désactivez simplement un plugin.

Si vous pouvez accéder à votre tableau de bord d'administration, vous pouvez accéder à l'écran Plugins , sélectionner Désactiver dans le menu des actions groupées, cocher tous les plugins, puis appuyer sur le bouton Appliquer . Cela désactivera tous vos plugins.

Désactiver les plugins dans WordPress
Désactivation de tous les plugins WordPress via le tableau de bord d'administration WP

Si vous ne pouvez pas accéder à votre zone d'administration, vous pouvez désactiver les plugins via SFTP en utilisant la méthode décrite précédemment. Renommez simplement le nom du dossier du plugin principal pour désactiver tous les plugins en masse.

Une fois que vous avez désactivé tous les plugins, vérifiez si votre site se charge correctement. Si cela fonctionne, vous devez activer chaque plugin, tester le site après avoir activé chaque plugin.

Enfin, assurez-vous que vos plugins, thèmes et noyau WordPress sont à jour. Assurez-vous également que votre serveur exécute la version recommandée de PHP.

Si vous pensez que cela est trop écrasant, vous pouvez toujours demander de l'aide à votre hôte. Kinsta utilise Kinsta APM et d'autres techniques de dépannage pour aider les clients à déterminer quel plugin, requête ou script pourrait causer l'erreur.

Dans les pires scénarios, comme une requête inefficace ou un mauvais code dans un plugin/thème, vous pouvez faire appel à un développeur WordPress pour résoudre le problème.

Vérifier les journaux d'erreurs

L'affichage des journaux d'erreurs peut être très utile lors du dépannage et du débogage des erreurs 504 sur votre site WordPress. Cela peut vous aider à cerner rapidement un problème sur votre site, surtout s'il résulte d'un plug-in exigeant sur votre site.

Si vous êtes un client Kinsta, vous pouvez facilement voir les erreurs dans la visionneuse de journaux de votre tableau de bord MyKinsta.

Vérification des journaux d'erreurs dans le tableau de bord MyKinsta
Vérification des journaux d'erreurs dans le tableau de bord MyKinsta

Si votre hébergeur n'a pas d'outil de journalisation, vous pouvez activer le mode de débogage de WordPress en ajoutant le code suivant à votre fichier wp-config.php :

 define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );

La constante WP_DEBUG active ou désactive le mode de débogage de WordPress. Il a deux constantes associées facultatives qui peuvent étendre ses fonctionnalités. La constante WP_DEBUG_LOG dirige toutes les erreurs à enregistrer dans un fichier debug.log dans le répertoire /wp-content/ . Si vous ne voyez pas ce fichier, vous pouvez toujours en créer un.

La constante WP_DEBUG_DISPLAY contrôle si les journaux de débogage s'affichent sur la page HTML. Définir ceci sur false masquera toutes les erreurs, mais vous pourrez revoir les erreurs plus tard, car vous avez également défini WP_DEBUG_LOG comme true.

Important : Si vous avez activé WP_DEBUG dans l'environnement Kinsta, il acheminera toutes les erreurs vers le fichier debug.log et non vers error.log dans le tableau de bord MyKinsta.

Vous pouvez également télécharger les fichiers journaux d'erreurs WordPress bruts via SFTP. En règle générale, vous pouvez trouver les journaux d'erreurs dans le répertoire racine de votre serveur dans un dossier nommé "logs".

Accéder au dossier des journaux d'erreurs WordPress via SFTP
Accéder au dossier des journaux d'erreurs WordPress via SFTP

Les utilisateurs de Kinsta peuvent également activer le mode de débogage WordPress à partir de leur tableau de bord MyKinsta. Pour ce faire, accédez à Sites > Outils > Débogage WordPress et cliquez sur le bouton Activer . Cela vous permettra de voir les erreurs et les avis PHP sans activer le mode débogage via SSH ou SFTP.

Enfin, vous pouvez vérifier les fichiers journaux du serveur. Selon le serveur que vous utilisez pour héberger votre site WordPress, ils se trouvent généralement dans ces emplacements :

  • Apache : /var/log/apache2/error.log/
  • Nginx : /var/log/nginx/error.log/

Vous pouvez vous référer à la documentation relative à la journalisation d'Apache ou de Nginx pour plus d'informations.

Configurer correctement les paramètres Apache ou Nginx

Vous pouvez modifier les fichiers de configuration de votre serveur pour augmenter les limites de ressources pour des directives spécifiques. Cela peut vous aider à résoudre l'erreur 504 Gateway Timeout.

Pour les serveurs Web Apache

Tout d'abord, ajoutez le code suivant à votre httpd.conf :

 TimeOut 600

Ce paramètre définit la durée pendant laquelle le serveur attendra certaines requêtes avant de les marquer comme un problème de délai d'attente du réseau. Sa valeur par défaut est de 60 secondes (version Apache 2.4).

Vous ne pouvez ajouter cette directive que dans votre fichier httpd.conf , pas dans votre fichier .htaccess. Étant donné que la plupart des fournisseurs d'hébergement mutualisé ne vous autorisent pas à modifier le fichier httpd.conf , vous pouvez plutôt essayer d'augmenter la valeur de la directive LimitRequestBody dans votre fichier .htaccess .

Ajoutez ensuite la ligne suivante à votre fichier php.ini :

 max_execution_time 300

La valeur par défaut de la directive max_execution_time de PHP est de 30 secondes. L'augmenter permettra aux scripts PHP de votre site de s'exécuter plus longtemps.

Pour les serveurs Web Nginx

Si vous exécutez vos sites WordPress sur Nginx + FastCGI Process Manager (PHP-FPM) ou si vous utilisez Nginx comme proxy inverse pour Apache, vous pouvez modifier les paramètres du serveur pour éviter les erreurs 504 Gateway Timeout.

504 Erreur d'expiration de la passerelle sur Nginx + FastCGI (PHP-FPM)

Tout d'abord, vous devez modifier votre fichier de configuration de pool PHP-FPM. Vous pouvez le trouver à l'emplacement /etc/php7.4/fpm/pool.d/www.conf de votre serveur Nginx (le chemin exact peut varier en fonction de la version de PHP). Vous pouvez également exécuter la commande suivante dans votre terminal pour modifier le fichier de configuration du pool PHP-FPM :

 sudo nano /etc/php/7.2/fpm/pool.d/www.conf

Ensuite, définissez la directive suivante :

 request_terminate_timeout = 300

Après cela, vous devez éditer votre fichier php.ini . Vous pouvez le localiser dans /etc/php.ini . Ouvrez le fichier et ajoutez/modifiez la valeur de la directive max_execution_time à 300 secondes.

 max_execution_time = 300

Enfin, ajoutez le code suivant au bloc d'emplacement de votre fichier nginx.conf :

 location ~ .php$ { ... fastcgi_read_timeout 300; }

Rechargez Nginx et PHP-FPM pour que les modifications prennent effet.

 sudo service nginx reload sudo service php7.4-fpm reload

Le code exact pour recharger PHP-FPM variera en fonction de la version de PHP installée sur votre serveur. Testez votre site pour voir s'il a résolu le problème.

504 Erreur de délai d'expiration de la passerelle sur le proxy Nginx

Si vous utilisez Nginx comme serveur proxy inverse pour Apache, vous pouvez le rendre plus indulgent envers les délais d'attente du serveur en ajoutant les directives suivantes à votre fichier nginx.conf :

 proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;

N'oubliez pas de recharger Nginx après avoir effectué vos modifications.

sudo service nginx reload

Autres erreurs HTTP comme 504 Gateway Timeout

Comme mentionné précédemment dans l'article, de nombreuses autres erreurs HTTP 5xx ressemblent à l'erreur 504 Gateway Timeout. C'est parce qu'ils se produisent tous côté serveur. Ces erreurs incluent :

  • 500 Erreur de serveur interne
  • Erreur 501 non implémentée
  • 502 Erreur de passerelle incorrecte
  • 503 Service non disponible Erreur

D'autres erreurs HTTP causées par des problèmes côté client, comme l'erreur 404 Not Found, ressemblent également à l'erreur 504. Vous pouvez vous référer au guide détaillé de Kinsta et à la liste des codes de statut HTTP pour plus d'informations.

Lorsque vous ne savez pas ce qui a causé une erreur 504 Gateway Timeout, comment la corriger à temps pour empêcher les visiteurs durement gagnés de rebondir sur les sites concurrents ? Tous les détails sont dans ce post. Cliquez pour tweeter

Résumé

Votre site WordPress peut être affecté par l'erreur 504 Gateway Timeout pour plusieurs raisons. Dans cet article, vous avez appris à les résoudre tous. Généralement, ces erreurs sont dues à des problèmes côté serveur, auquel cas vous pouvez contacter votre hôte et le résoudre rapidement.

Cependant, vous devez également comprendre que cette erreur peut être due à des plugins tiers, des thèmes, des services, des requêtes de base de données inefficaces ou une combinaison de deux ou plusieurs de ceux-ci. Si vous maximisez les ressources de votre serveur (par exemple, les travailleurs PHP), il est recommandé d'optimiser les performances de votre site.

Si vous constatez toujours que votre site Web expire, il se peut très bien que vous deviez mettre à niveau votre plan d'hébergement ou le nombre de travailleurs PHP. Je vous recommande de ne considérer cette option qu'après avoir épuisé toutes les autres solutions décrites dans cet article.

From simple static sites to complex ecommerce and membership sites, Kinsta's scalable hosting plans are designed to accommodate all types of websites. To learn more about our scalable cloud hosting, check out this article!

Did we miss anything? If you're still finding it difficult to fix the 504 Gateway Timeout error on your WordPress site, leave a comment below.