HTTP 504 (Gateway Timeout): résoudre l’erreur 504

Lorsque vous chargez une page Web avec votre navigateur, le serveur Web est généralement le dernier maillon dans la chaine de systèmes occupée à traiter la requête HTTP envoyée. Les passerelles réseau et les serveurs proxy régulent la transmission de la réponse à la requête pour soulager le serveur Web et pour assurer un transfert rapide des données. Le serveur qui est contacté a toujours plusieurs stations de communication précédées et cela pour des raisons pratiques. Toutefois, si l’un des systèmes antérieurs fonctionne mal, cela peut entrainer l’échec de la requête. Et au lieu d’avoir la page souhaitée, votre navigateur affichera alors des messages d’erreur comme « HTTP error 504 » ou « Gateway Timeout ».

Nous allons voir en détail ce qui se cache derrière ce type de message du serveur et nous allons apporter des solutions pour résoudre l’erreur 504 Gateway Timeout (aussi bien pour les utilisateurs, internautes que pour les opérateurs de site Web).

HTTP 504 : qu’est-ce que ce code de statut Hypertext Transfer Protocol ?

L’HyperText Transfer Protocol est l’un des protocoles les plus importants pour transférer du contenu Web. Au niveau des applications, il permet la communication entre le client : un navigateur Web et le serveur Web respectif qui héberge le contenu désiré. Pour cela, l’HTTP communique l’hypertexte de la page Web, que le logiciel client peut alors transformer en texte, images etc. L’échange fonctionne via des messages, le client effectue tout d’abord une requête HTTP (HTTP Request). Par la suite le serveur envoie une réponse contenant un code de statut qui par exemple informe sur le succès du traitement (HTTP 200) ou inversement indique un échec comme dans le cas de l’erreur 504.

La réponse HTTP 504 indique au client que la raison de l‘échec est un délai d’attente expiré lors du traitement de la requête. C’est pourquoi le code de message porte aussi l’étiquette «Gateway timeout ». L’expéditeur du message est le serveur dans la chaîne de communication qui n’a pas pu remplir sa fonction en tant que passerelle ou proxy, car il n’a pas reçu de réponse du serveur (ou du service) suivant dans un délai de temps spécifié. Finalement le message d’erreur est présenté dans le navigateur Web du visiteur, l’opérateur du site Web peut lui déterminer la présentation du message. Par exemple, les messages d’erreur 504 fréquemment utilisés comportent les éléments suivants :

  • HTTP 504
  • HTTP Error 504: Gateway Timeout
  • Gateway Timeout (504)
  • Gateway Timeout Error
  • 504 Gateway Timeout
  • 504 Erreur
  • Error 504 Gateway Timeout

Pourquoi une erreur 504-Gateway-Timeouts apparait ?

Les messages HTTP 504 apparaissent lorsqu’un serveur intermédiaire ou une interface réseau ne peut pas répondre à la demande/requête du navigateur ou du client dans un laps de temps défini. Comme déjà mentionné plus haut, cela résulte du fait que les systèmes concernés ne reçoivent pas de réponse du prochain maillon de la chaine de communication. Il peut exister plusieurs causes et raisons :

  • Le serveur proxy ou le routeur sur le réseau local qu’utilise l’utilisateur est surchargé et ne fonctionne plus. Dans ce cas, l’erreur 504 est rarement limitée à un seule page Web, mais se produit également lors du chargement d’autres sites Web.
  • Le site Web appelé revient à un serveur proxy pour l’optimisation des performances. Cependant ce serveur est saturé ou alors défectueux et ne peut être atteint à partir du nœud Internet en amont, ce qui entraine un « Gateway Timeout » (temps d’attente d’une réponse d’un serveur à un serveur intermédiaire écoulé).
  • Parfois, les paramètres incorrects du proxy tant du côté du client que du serveur peuvent être responsables de l’apparition d’un message HTTP 504.
  • Le problème concerne un ou plusieurs serveurs d’un fournisseur de services Internet ou d’une entreprise. Cela signifie que l’inaccessibilité n’a rien à voir avec les paramètres de l’utilisateur du navigateur ni de ceux de l’opérateur du site Web concerné.

Résolution d’une erreur 504 Gateway timeout

Il est toujours contrariant pour tous les utilisateurs d’un navigateur de voir que la page Web désirée ne se charge pas et qu’à la place une page d’erreur apparait. Surtout si le service ou site Web est vraiment nécessaire et utile, dans ce cas la frustration peut rapidement se transformer en exaspération. En particulier si vous travaillez avec des applications de Cloud et n’avez donc aucune version hors connexion disponible, ainsi une solution rapide du problème s’impose. Il en va de même si vous êtes responsable d’un projet Web qui devient inaccessible pour les utilisateurs en raison des délais d’attente de la passerelle (Gateway timeout). Dans ce cas, une réaction rapide est aussi importante afin de limiter la perte de trafic sur le site ce qui risque d’impacter négativement le chiffre d’affaires (par exemple pour une boutique en ligne).

504 Gateway Timeout : résoudre le problème en tant qu’utilisateur du navigateur

Si vous rencontrez une erreur HTTP 504 pendant une navigation sur le Web, vous pouvez être certains que ce scénario n’est pas prévu ou anticipé, car il serait alors annoncé avec un code de statut 503 par exemple pour informer de la maintenance d’un site Internet. Le «Gateway Timeout » est presque toujours dû à un problème de serveur de l‘opérateur du site Web ou bien du fournisseur. Toutefois, comme mentionné plus haut, il est également possible que votre routeur ou le serveur proxy utilisé délivre aussi ce message d’erreur. Par conséquent, vous avez différentes options pour résoudre l’erreur HTTP 504 en tant qu’utilisateur de navigateur :

1ère solution : appeler à nouveau l’application Web souhaitée.

L’erreur 504 se produit en général sur une courte durée. Par conséquent la solution la plus rapide et la plus facile est de simplement rappeler le site une nouvelle fois. Pour cela il suffit de rafraîchir la page en cliquant sur le bouton qui se trouve au niveau de la barre d’adresse du navigateur. Vous pouvez également utiliser la touche [F5] ou la combinaison de touches [STRG] + [R] ou bien rentrer à nouveau manuellement l’URL.

2ème solution : redémarrer tous les périphériques réseau

Si le délai d’attente se produit au sein de votre réseau domestique, vous pouvez alors résoudre le problème en redémarrant et en réinitialisant vos périphériques réseau. Il est en effet possible que le modem, routeur ou autre périphérique soit mal configuré ou qu’il ne fonctionne tout simplement pas normalement pour d’autres raisons. Par conséquent la requête HTTP du navigateur ne peut pas être effectuée dans la période imputée. Un indicateur classique d’un problème avec vos propres périphériques ou appareils est le fait de ne pas pouvoir afficher d’autres sites Internet et de recevoir à la place des messages d’erreur HTTP 504.

Pour afficher cette vidéo, des cookies de tiers sont nécessaires. Vous pouvez consulter et modifier vos paramètres de cookies ici.

3ème solution : vérifier les paramètres du serveur proxy

Si vous utilisez un serveur proxy pour votre activité Internet, assurez-vous de vérifier les paramètres appropriés dans votre navigateur si une erreur 504 ne peut pas être corrigée avec un simple rafraîchissement de page ou avec un redémarrage du routeur. D’une part la configuration peut être défectueuse, d’autre part, il peut être nécessaire de sélectionner un proxy différent parce que le serveur utilisé jusqu’a présent n’est plus disponible ou rencontre des problèmes techniques même si habituellement des messages comme « Proxy server not responding » ou « Proxy server refusing connection » s’affichent alors. Notre guide apporte des conseils pour régler les configurations de votre proxy sur votre navigateur.

4ème solution : changer de serveur DNS

Le serveur DNS utilisé par le routeur peut aussi être responsable de l’erreur 504-Gateway-Timeout. Lorsque vous vous connectez à Internet, votre fournisseur d’accès vous assigne automatiquement un serveur primaire et un serveur secondaire, mais vous pouvez cependant choisir votre résolution de noms. Les deux variantes ne sont pas 100 pourcent infaillibles, c’est pourquoi un délai d’attente lorsque vous contactez le serveur DNS est possible. Dans un tel scénario, le changement vers un serveur DNS, gratuit et accessible au public peut représenter la solution optimale. Le guide numérique vous indique les étapes requises pour modifier le serveur DNS.

5ème solution : contacter l’opérateur du site et ou le fournisseur d’accès à Internet.

Si malgré les changements apportés au matériel et aux logiciels la situation ne s’améliore pas. Il est alors préférable de contacter directement l’opérateur du site Web ou l’administrateur. Si la cause de l’erreur http 504 est le projet Web lui-même, vous êtes alors susceptible d’apprendre directement quel est exactement le problème et surtout quand le site est susceptible d’être à nouveau disponible et librement consultable. Toutefois si cette erreur ne s’applique qu’à vous ou à une partie des utilisateurs, alors c’est certainement le signe qu’un serveur de votre fournisseur d’accès Internet est affecté. Dans ce cas, vous n’avez pas d’autre choix que de le contacter directement.

Remarque

Si le projet Web en question est un site Web populaire et très fréquenté, un tour sur les réseaux sociaux comme Twitter peut alors vous aider à glaner des informations utiles. En effet, les sociétés concernées communiquent généralement rapidement sur ces réseaux si le site Internet de l’entreprise et/ou le projet Web rencontrent un problème. En outre, c’est aussi un moyen pour savoir si d’autres utilisateurs rencontrent le même problème que vous. Dans ce cas, les hashtags comme #websitedown (par exemple #facebookdown) deviennent très vite populaires.

6ème solution : réessayer et consulter le site ultérieurement

Si les mesures personnelles comme le redémarrage ne permettent pas de résoudre l’erreur HTTP 504 et cela indépendamment du serveur affecté dans la chaine de communication ou quelle que soit la raison pour laquelle il ne peut pas traiter la requête.  Alors vous devez attendre que l’opérateur du site Web ou bien le fournisseur corrige l’erreur. Si le site Internet affiche ce message d’erreur pendant une période de temps longue ou à des intervalles réguliers il est alors recommandé de revenir sur le site bien ultérieurement.

Erreur 504 : solutions pour les opérateurs de site Web.

Comme opérateur de projet Web, votre objectif est non seulement de proposer aux visiteurs le meilleur contenu possible combiné avec une utilisabilité performante mais aussi de garantir un grand niveau de disponibilité de votre site. Un hébergement stable et une protection pour les logiciels malveillants sont aussi importants qu’une réaction rapide aux problèmes techniques comme un « 504-Gateway-Timeouts ». Il est donc nécessaire de détecter le plus tôt possible cette erreur, de réagir rapidement en identifiant la cause et d’obtenir ainsi une solution.

1ère solution : augmenter les ressources du serveur proxy

Dans de nombreux cas, votre serveur proxy peut être la cause de l’erreur HTTP 504. En effet, si vous utilisez un proxy pour votre site Web afin de soulager le serveur Web, il peut alors être responsable du Gateway timeout. C’est notamment le cas si le projet se développe rapidement dans un temps relativement court et que le nombre de visiteurs augmente rapidement, mais que le proxy lui n’a alors plus les ressources nécessaires pour traiter l’ensemble des requêtes HTTP. De même pour les pics ponctuels qui peuvent être dus par exemple à des évènements saisonniers comme Noel (dans le cas d’une boutique en ligne). 

Si lors d’un trafic particulièrement élevé une erreur 504 apparait, c’est alors le signe d’une surcharge du serveur proxy. La solution est donc d’acheter des ressources matérielles supplémentaires par exemple ou de les commander via votre fournisseur d’accès. Idéalement il est préférable d’anticiper une telle augmentation afin de ne pas provoquer de panne de votre système. Ceci est notamment facile et pratique à réaliser si dès le départ vous optez pour une solution flexible d’hébergement Cloud. Cela apporte à votre serveur proxy une puissance permanente ou une puissance supplémentaire temporaire pour traiter toutes les requêtes HTTP entrantes sans problème et éviter ainsi les messages « 504 error ».

Pour afficher cette vidéo, des cookies de tiers sont nécessaires. Vous pouvez consulter et modifier vos paramètres de cookies ici.

2ème solution : ajuster les paramètres du serveur proxy

Un problème avec le serveur proxy n’est pas toujours le fait de ressources manquantes. En effet, il est aussi possible que des mauvaises configurations puissent être à l’origine du défaut de traitement des requêtes du client. Une erreur 504 Gateway timeout  liée à la configuration est un problème courant avec les serveurs proxy NGINX. Cependant, le problème peut être corrigé à l’aide de quelques entrées dans le fichier de configuration. Dans le cas de NGINX, il suffit d’ouvrir le fichier nginx.conf et d’insérer les lignes suivantes :

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

Si vous utilisez NGINX en combinaison avec FastCGI (php-fpm), l’erreur HTTP 504 peut aussi se produire. Ce problème peut cependant via quelques ajustements se résoudre. Tout d’abord augmenter la valeur „max_execution_time“  dans le fichier fpm/php.ini et ajouter à cette valeur la variablerequest_terminate_timeout“ dans le fichier fpm/pool.d/www.conf. Puis recherchez dans nginx.conf le bloc  „location ~ \.php$“ et y ajouter l’entrée suivante :

fastcgi_read_timeout 300;

Les deux solutions nécessitent un redémarrage ultérieur de NGINX pour adopter les modifications afin de résoudre l’erreur  504 Gateway timeout :

service nginx reload

3ème solution : vérifier les bases de données et le CMS (système de gestion de contenu)

Le logiciel serveur n’est pas toujours responsable d’une erreur 504 Gateway Timeout. Un temps de traitement HTTP trop long et dépassé peut également provenir d’un système de gestion de contenu défectueux ou bien des systèmes de base de données ou d’autres applications qui ne fonctionnent pas normalement. Si ce message d’erreur apparait, vous devriez donc aussi considérer des dysfonctionnements possibles dans ces systèmes. Comme pour les serveurs proxy, la cause la plus fréquente est de mauvaises configurations qui doivent être détectées et corrigées. Enfin ce qui peut concerner spécifiquement un CMS est l’utilisation incorrecte d’un plugin qui doit être soit mis à jour ou bien purement désactivé.

Remarque

La meilleure façon d’éviter et d’anticiper les erreurs 504 est de créer régulièrement des sauvegardes de toutes les bases de données de votre CMS et d’installer les mises à jour à temps. Lors de la sélection des extensions, il est important de prêter attention à certains facteurs comme la date, la fiabilité et bien évidemment la comptabilité de toute extension. De plus il est conseillé d’utiliser un nombre assez restreint de plugins pour que le système de gestion de contenu ne consomme pas plus que les ressources existantes.

4ème solution : contacter l’hébergeur ou le fournisseur d‘accès à Internet.

Si toutes les tentatives et solutions précédentes ne permettent pas de fixer l’erreur 504 Gateway Timeout, il est très probable que l’erreur soit en hors de votre domaine de responsabilité puisque qu’elle ne provient pas de vos applications. Dans ce cas, le problème vient certainement d’un serveur dans la chaine de communication qui est géré par votre fournisseur d’accès ou par votre fournisseur d’hébergement. Ainsi la seule option est donc de contacter l’hébergeur ou le fournisseur et de demander la résolution du problème. Si votre projet Web a été infecté par des malwares et que vous rencontrez l’erreur 504, il est aussi utile et recommandé de demander de l’aide.