Développement web

Comment résoudre l’erreur 504 gateway time out ?

By Pierre, on 10 May, 2022, updated on 29 November, 2022 - 13 min read

504 gateway timeout est une erreur dont la résolution est bien souvent hors de portée du visiteur de site web. Il s’agit en effet d’une erreur de serveur. Quoi qu’il en soit, visiteur ou administrateur, il convient que nous sachions réagir face à un tel problème.

Plusieurs causes peuvent être à la base du délai d’attente dépassé du côté du serveur. Il peut s’agir :

  • d’un serveur en panne ;
  • d’un problème de serveur proxy surchargé ;
  • des paramètres proxy incorrects.

Dans ce guide, nous vous expliquons ce que révèle le code d’erreur 504 gateway timeout. Nous détaillons les causes possibles et les solutions pour y remédier.

504 Gateway timeout : Que comprendre ?

Le code d’erreur 504 Gateway timeout fait partie de la famille des codes d’état HTTP 5XX. Cette classe comprend les codes qui notifient qu’il y a une erreur avec le serveur. Ce dernier ne peut donc donner une réponse à la requête du client. C’est pour cela que cette famille porte le nom de codes d’erreur serveur.

Le code 504 Gateway timeout apparaît lorsque l’exécution de la requête implique deux serveurs web. Le premier qui est bien souvent le serveur web principal attend la réponse d’un serveur en amont (le second serveur web).

Cette erreur serveur s’apparente à l’erreur 502 Bad Gateway. Celle-ci révèle que le serveur principal a reçu une réponse invalide de la part du serveur en amont.

error, www, internet

Quelques variantes du message d’erreur 504 Gateway

Dans nos navigateurs, l’erreur 504 s’affiche sous différentes formes et messages. Voici quelques-unes des expressions les plus courantes qui la désignent.

  • 504 Gateway Timeout
  • NGINX 504 Gateway Timeout
  • Gateway Timeout Error
  • 504 Gateway Timeout NGINX
  • HTTP Error 504
  • HTTP 504
  • HTTP Error 504 – Gateway Timeout
  • Error 504
  • 504 Error
  • Gateway Timeout (504)
  • 504 Gateway Time out – Le serveur n’a pas répondu à temps.
  • Un écran vierge
  • La requête de la page web a été annulée, car elle a pris trop de temps pour être complétée
  • Visiteurs du site : Il y a eu un problème pour répondre à votre requête, svp réessayez dans quelques minutes
  • Cette page ne fonctionne pas – Le domaine a mis trop de temps à répondre
  • Propriétaires du site : Il y a eu un dépassement de délai de la passerelle. Vous devriez consulter votre journal d’erreurs pour plus d’informations.

Certains sites web et serveurs personnalisent leur message d’erreur 504 Gateway timeout. Ceci peut s’avérer intéressant puisque si le message se formule bien, il peut apaiser la déception de leurs utilisateurs.

Quel impact sur le référencement SEO ?

Comme la plupart des erreurs 5xx, l’erreur 504 empêche une page web de se charger. Ce qui nuit à l’expérience de navigation. Si cette erreur survient et dure plus qu’il n’en faut, Google pourrait désindexer la page web concernée.

Quand les robots de Google tombent sur une telle panne dans leur exploration du web, ils considèrent dans un premier temps que c’est temporaire. Ils affichent la page concernée depuis leur cache en attendant qu’une solution soit apportée au problème.

Cependant, si le problème dure plus de 6 heures, Google estimera qu’il s’agit d’un problème grave à l’échelle du site web. Il s’agit là d’un jugement qui peut nuire au classement du site dans les résultats de recherche.

search engine optimization, seo, digital marketing

Qu’est-ce qui cause l’erreur 504 Gateway timeout ?

Plusieurs situations peuvent entraîner l’apparition du code d’erreur 504 Gateway timeout. Comme dit plus haut, la première cause de ce message d’erreur est le délai d’attente dépassé.

Ceci arrive quand le serveur en amont pour une raison ou une autre n’arrive pas à servir une réponse au serveur principal. Nous supposons alors que le serveur en amont est soit défectueux, soit saturé.

Le message d’erreur peut aussi apparaître quand le routeur du réseau local dont fait usage l’utilisateur se trouve surchargé. La même situation s’observe quand le serveur proxy utilisé est aussi saturé.

Mais dans ce cas, le problème ne se limite pas à un seul site web. Le message d’erreur s’affiche, quelle que soit la page que nous essayons de charger. Des paramètres proxy incorrects du côté du serveur comme du côté client peuvent créer aussi une erreur HTTP 504.

Quelle solution pour corriger l’erreur 504 Gateway timeout en tant qu’utilisateur ?

Pour apporter une réelle solution à un problème d’erreur HTTP 504, il est nécessaire de maîtriser les détails du site WordPress concerné. Étant donné que les variables impliquées sont nombreuses, nous allons commencer par les solutions les plus simples.

Actualiser la page web

La solution la plus simple à expérimenter est l’actualisation de la page web. Patientons donc quelques minutes et rechargeons la page.

Nous pouvons nous servir de la touche de fonction F5 située sur le clavier de l’ordinateur pour le faire. L’idéal serait même de vider le cache du navigateur avant d’actualiser la page.

Pour faire les deux tâches en même temps, il suffit de se servir de la combinaison clavier CTRL + F5.

Dans le même temps, nous pouvons vérifier si le problème ne provient pas du navigateur que nous utilisons. Pour ce faire, essayons de nous rendre sur le site web depuis un autre navigateur internet.

Si après toutes ces démarches, le problème demeure, nous allons vérifier si nous sommes seuls concernés par cette panne. Il existe en effet des outils en ligne qui aident à savoir si une panne de site est générale ou ne concerne que nous.

Redémarrer les périphériques réseau

Le dysfonctionnement ou la saturation des périphériques comme le routeur ou le modem d’un réseau local peut créer une erreur 504. En redémarrant ces matériels du réseau, le problème de connexion peut se résoudre.

L’ordre de redémarrage de ces appareils de réseau s’avère important pour la résolution du problème.

Il nous faut donc commencer de l’extérieur vers l’intérieur. Nous devons rallumer le matériel de réseau en quittant l’équipement du fournisseur de services internet vers notre appareil client principal.

Vérifier les réglages du serveur proxy

Entre un terminal réseau et internet, il peut se trouver un serveur proxy. Il s’utilise en particulier pour protéger les données concernant la vie privée de l’utilisateur. Il cache par exemple le lieu de connexion de l’utilisateur aux serveurs web ainsi qu’aux sites web.

Il faut dire qu’il est peu évident que des serveurs proxy causent une erreur 504. Cependant, il peut arriver que des paramètres proxy incorrects entraînent cette erreur.

Pour vérifier si nos serveurs proxy sont en cause, il suffit de les désactiver. Ensuite, nous devons actualiser la page web pour voir si le problème est résolu.

Si vous n’utilisez pas de serveurs proxy, cette démarche ne vous concerne pas. Toutefois, soulignons qu’il est possible d’en activer sans s’en rendre compte. Pour en avoir le cœur net, vérifions les paramètres proxy de notre navigateur et de notre ordinateur.

Résoudre les problèmes de DNS

Des problèmes de DNS du côté client et/ou du côté serveur peuvent provoquer l’apparition d’un code d’erreur 504. Un problème de DNS du côté du serveur peut venir du fait que le serveur DNS ne répond pas. Cela peut venir aussi du Fully Qualified Domain Name (FQDN) qui n’arrive pas à se résoudre à l’adresse IP correcte.

Bien souvent, nous observons cette situation après une migration de site WordPress vers un nouvel hébergement. Ce problème peut être évité si nous attendons que la propagation des enregistrements DNS du domaine soit complète.

Du côté client, le problème de DNS se résout en vidant le cache DNS local. Pour le faire sous Windows, il nous suffit de taper la commande ipconfig/flushdns dans l’invite de commande.

Sous Mac OS, pour vider le cache du système d’exploitation, nous devons ouvrir le terminal. Ensuite, il nous faut saisir la commande sudo killall -HUP mDNSResponder. Cette commande ne fonctionne qu’avec les dernières versions de Mac OS.

Du côté client, le problème de DNS peut aussi se résoudre en changeant nos serveurs DNS de façon temporaire. En général, les fournisseurs d’accès internet nous attribuent des serveurs DNS par défaut. Nous pouvons changer ces derniers en IP DNS publiques de manière temporaire.

Entrer en contact avec l’administrateur du site web et le fournisseur d’accès internet (FAI)

SI après toutes les démarches précédentes, le problème n’est pas résolu, il faut peut-être joindre l’administrateur du site. Il est habilité à nous informer sur le réel problème de sa plateforme web. Il pourra aussi nous dire à quel moment le site sera de nouveau accessible.

Néanmoins, si l’erreur de connexion ne concerne que nous ou une partie des visiteurs, il faudra chercher notre solution ailleurs. Un serveur de notre FAI est peut-être en panne. Pour être fixé, il nous faut le contacter.

Consulter le site plus tard

Cette solution est celle que nous appliquons par dépit. Si toutes nos tentatives de résolution du problème se soldent par un échec, nous n’avons d’autres choix que de patienter.

Nous devons attendre que notre FAI ou l’administrateur du site web corrige l’erreur. Nous pouvons alors consulter la page web plus tard afin de vérifier si le problème est résolu.

Comment corriger l’erreur 504 Gateway timeout en tant qu’administrateur ?

En tant qu’administrateur de site web, nous allons devoir mener plusieurs démarches pour résoudre ce problème de connexion.

Augmenter les ressources serveur

Il faut dire que le manque d’infrastructure constitue la cause la plus courante d’erreur 504. Si notre serveur ne dispose pas de ressources suffisantes pour supporter la charge de notre site web, nous rencontrerons des erreurs de connexion.

L’unique solution pour régler le problème consiste à opter pour un serveur avec une meilleure infrastructure.

Par exemple, si nous avons un site WordPress qui génère un grand volume de trafic, nous aurons besoin de plus de Workers PHP. Ces Workers fournis par l’hébergeur ; s’utilisent pour l’exécution de requêtes sur un site WordPress.

Quand tous les workers PHP mis à disposition du serveur sont occupés, une file d’attente se forme. Quand celle-ci devient trop longue, le serveur ne traite plus les anciennes requêtes.

Cela peut provoquer une erreur 504. Pour éviter cela, il nous faut demander à notre fournisseur d’hébergement d’augmenter le nombre de Workers PHP. Notre site web pourra ainsi exécuter plusieurs requêtes à la fois.

server, cloud, development

Réduire vos délais HTTP

Quand une connexion entre le client et le serveur web reste ouverte pour une trop longue durée, cela entraîne des délais HTTP.

Avec les sites WordPress par exemple, cela arrive quand des importations WordPress s’exécutent. La solution à ce problème se trouve dans une connexion internet plus rapide.

Se protéger des attaques DDoS, des bots et du spam

Les attaques malveillantes ont la capacité de provoquer l’écroulement de notre serveur web. Elles peuvent y arriver grâce à l’envoi d’un grand nombre de requêtes. Les requêtes capables de monopoliser une grande quantité de ressources représentent aussi une menace pour notre serveur.

Si nous subissons une attaque DDoS ou une attaque des bots, notre serveur risque d’être submergé. Il en est de même si notre site est spammé. Tout ceci peut provoquer des erreurs 504. Ce faisant, nos véritables utilisateurs ne seront plus en mesure d’accéder à notre site web.

Pour pallier cela, il faut protéger notre serveur de ces éventuelles menaces. À cet effet, il nous faut effectuer un examen du trafic de notre serveur web. Ceci aidera à détecter les modèles irréguliers dans le trafic.

Nous pouvons commencer l’examen à partir des IP des clients principaux. Grâce à cela, nous saurons qui des clients génère le nombre de requêtes le plus élevé. Si de manière brusque, la bande passante utilisée par notre serveur devient énorme, ce rapport nous sera d’une grande aide.

Poursuivons l’examen en consultant le rapport d’analyse du cache. Nous y verrons le nombre de requêtes manquant ou contournant le cache.

Pour une sécurité renforcée, nous pouvons utiliser une extension WordPress de sécurité.

Celle-ci détecte les adresses IP et les trafics inquiétants. Elle les bloque par la suite. À défaut d’une extension WordPress, nous pouvons solliciter notre fournisseur d’hébergement pour bloquer certaines adresses IP.

Le blocage d’IP peut devenir une opération sans fin. En effet, beaucoup d’attaquants malveillants après leur blocage reviennent à la charge en changeant d’adresses proxy et d’IP.

Résoudre les problèmes de bases de données

Une base de données corrompue peut provoquer l’apparition d’un code d’erreur 504 Gateway timeout. Cette situation se remarque sur les sites WordPress en particulier. Les fichiers ou tables corrompus sont en général ce qui endommage toute la base de données.

Une base de données WordPress corrompue peut aussi être la conséquence d’un piratage du site web. Pour régler le problème, il faut passer par une réparation de la base de données. Ce qui implique une restauration à une version antérieure au piratage et plusieurs autres démarches.

Vérifier les thèmes et les extensions du site web

En temps normal, les thèmes et extensions ne causent pas l’apparition d’un code d’erreur 504. Cependant, ils génèrent parfois un nombre élevé de requêtes qui ne sont pas mises en cache.

Cette situation crée alors une longue file d’attente pour le serveur. Ceci entraîne la mobilisation d’une partie importante des Workers PHP du serveur. Dans ce cas, ce dernier ne considère plus les anciennes requêtes. Cela finit par entraîner des erreurs 504.

La désactivation des extensions est la meilleure solution pour résoudre ce problème.

Dans WordPress, pour désactiver les extensions, il suffit de nous rendre sur le tableau de bord ensuite dans le menu EXTENSIONS.

Nous allons ensuite sélectionner l’option DESACTIVER. Ceci s’effectue dans le sous-menu des actions groupées. Cochons ensuite toutes les extensions. Pour finir, cliquons sur APPLIQUER. Toutes nos extensions seront désactivées.

La désactivation peut aussi se faire via FTP. Elle consiste à renommer le répertoire principal des extensions.

Après désactivation de toutes les extensions, vérifions si le site web se charge comme il faut. SI celui-ci s’affiche bien, nous allons alors procéder à l’activation des extensions l’une après l’autre. À chaque extension activée, nous devons vérifier si le site fonctionne.

Cette procédure aidera à identifier les extensions qui provoquent l’affichage du code d’erreur 504. Pour finir, nous devons nous rassurer de la mise à jour de WordPress.

Les thèmes et extensions de notre site web doivent aussi être à jour. Nous devons aussi vérifier la version de PHP qu’utilise notre serveur. Elle doit correspondre à la version recommandée.

Effectuer la vérification des journaux d’erreurs

Lire les journaux d’erreurs a une grande utilité lors de la résolution des erreurs 504, en particulier si vous disposez d’un site WordPress. Grâce à cette lecture, vous pouvez réduire en un laps de temps la quantité de problèmes existant sur votre site.

Si votre fournisseur d’hébergement ne donne pas accès à un outil de journalisation, vous pouvez utiliser le mode de débogage de WordPress. Nous allons donc l’activer en ajoutant à notre fichier wp-config.php le code qui suit.

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

La constante WP_ DEBUG sert à l’activation et à la désactivation du débogage de WordPress. Pour accroître ses fonctionnalités, cette constante dispose de deux autres constantes.

WP_DEBUG_LOG indique que l’ensemble des erreurs doivent être recensées dans le fichier debug.log. Ce dernier se trouvant dans le répertoire/wp-content/.

Il est possible que nous ne trouvions pas ce fichier. Dans ce cas, il nous suffit de créer le fichier nous-mêmes.

WP_DEBUG_DISPLAY s’assure de l’affichage des journaux de débogage dans la page HTML. Nous pouvons masquer toutes les erreurs en donnant la valeur false à cette constante. Nous pourrons quand même les vérifier bien après. C’est le réglage sur true de la constante WP_DEBUG_LOG qui favorise cela.

Nous avons aussi la possibilité d’effectuer le téléchargement du journal d’erreurs de WordPress. Dans ce cas-ci, il s’agira de télécharger les fichiers bruts de ce dernier à travers FTP. Ils se trouvent en général dans le répertoire racine de notre serveur. Nous devrions les voir en ouvrant le dossier désigné sous le nom de ”logs”.

Il est aussi intéressant de lire les journaux d’erreurs du serveur. En fonction de notre serveur d’hébergement, ces journaux peuvent se trouver dans différents dossiers.

Pour Apache, nous trouverons les fichiers jours dans /var/log/apache2/error.log/. Pour le serveur Nginx, consultons /var/log/nginx/error.log/.

Bien configurer les serveurs web

L’erreur 504 Gateway timeout peut être résolu en modifiant certains fichiers de configuration des serveurs web. Cela permettra d’accroître les limites de ressources pour certaines directives. Nous allons en particulier aborder la manière d’effectuer ces modifications sur les serveurs Apache et Nginx.

Modification des limites de ressources sur Apache

Commençons par l’ajout d’un code au fichier httpd.conf de notre serveur Apache. Il s’agit du code Timeout 600.

L’intégration de ce code au fichier httpd.conf permet d’augmenter pour certaines requêtes le temps d’attente du serveur. Ce n’est qu’après ce délai que le serveur estimera que le délai du réseau est dépassé. Par défaut, la valeur du temps d’attente est de 60 secondes sur la version 2.4 du serveur Apache.

L’ajout de cette directive doit se faire dans le fichier httpd.conf et non dans le fichier. htaccess. Cependant, tous les hébergeurs ne permettent pas la modification du fichier httpd.conf.

Dans ce cas, pour accroître la limite de ressource, vous devez vous rendre dans le fichier. htaccess de votre serveur web. Puis modifier la valeur de la directive LimitRequestBody.

Ouvrons ensuite le fichier php.ini. Ajoutons la ligne de code max_execution_time 300. Par défaut, la valeur de cette directive du fichier php.ini est de 30 secondes. L’augmenter permet aux scripts PHP de notre site web de s’exécuter sur une plus longue durée.

Modification des limites de ressources sur Nginx

Avec Nginx, deux utilisations sont possibles. Soit, vous avez configuré votre site WordPress sur Nginx. Soit, vous utilisez ce serveur comme proxy inverse pour le serveur web Apache.

Dans les deux cas, une modification de la configuration permet d’éviter les erreurs 504.

Réglages sur Nginx + FastCGI (PHP-FPM)

Nginx s’utilise souvent avec le FastCGI Process Manager. Nous allons donc commencer les modifications par le fichier PHP-FPM. Sur le serveur Nginx, pour le trouveril suffit de se rendre à

/etc/php7.4/fpm/pool.d/www.conf

Une fois dans le fichier, nous allons définir la directive request_terminate_timeout = 300. Rendons-nous ensuite dans le fichier php.ini de notre serveur Nginx, il se trouve à

/etc/php.ini

Ouvrons le fichier, mettons la valeur 300 secondes au niveau de la directive max_execution_time.

Nous devrions donc avoir max_execution_time = 300. Rendons-nous à présent dans le fichier nginx.conf. Au niveau du bloc de localisation de ce fichier, nous allons ajouter le code :

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

Pour que les modifications fassent effet, il faut redémarrer le serveur Nginx ainsi que PHP-FPM. Pour ce faire, utilisons le code :

sudo service nginx reload
sudo service php7.4-fpm reload
Modification dans le cas où Nginx servirait de proxy inverse à Apache

Ici, nous allons modifier les directives qui concernent les délais d’attente du serveur. Ouvrons le fichier nginx.conf. Ajoutons ensuite les directives qui suivent :

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

À la fin des modifications, rechargeons le serveur Nginx avec le code : sudo service nginx reload.

Autres solutions pour corriger l’erreur 504 Gateway timeout

Le pare-feu de notre serveur peut se trouver à la base des erreurs. Elle présente peut-être des paramètres incorrects. Ce qui empêche le serveur d’établir une bonne connexion.

Rendons-nous dans les journaux d’erreurs du serveur web. Ceux qui utilisent un équilibreur de charge devraient aussi se rassurer que cela n’entraîne pas de problèmes de connectivité réseau.

Le dépassement du délai d’attente peut avoir lieu s’il y a une mauvaise connectivité entre serveur web et serveur proxy. Le CDN (réseau de diffusion de contenu) de notre site peut aussi créer un problème d’erreur 504 Gateway timeout.

Désactivons donc le CDN et rechargeons le site web pour voir si le problème est résolu.

Si aucune tentative de résolution du problème ne marche, il est peut-être temps de nous référer au fournisseur d’hébergement. C’est peut-être le signe que le problème est hors de notre champ de contrôle. Aucune de nos applications n’en est responsable.

Le problème vient peut-être d’une ressource de notre hébergeur. Nous allons donc le contacter afin d’obtenir son assistance.

Pierre