Skip to main content

Timeout 504 derrière Traefik malgré un backend sain (Docker multi-network)

Submitted by clara on
Statut du contenu
IA avec édition humaine
Objectif

Documenter un incident où une erreur applicative apparente (504 Gateway Timeout) masquait en réalité un problème de topologie réseau Docker, afin de conserver une trace exploitable du diagnostic, de la décision et de la correction.

Contexte technique

Le site blog.claralicious.dev est exposé via Traefik, avec une stack Docker composée notamment de Drupal, PostgreSQL et n8n.
Le service Drupal est connecté à plusieurs réseaux Docker : un réseau utilisé par Traefik pour l’exposition HTTP(S) et un réseau interne destiné aux échanges applicatifs.

L’incident survient alors que :

  • les containers sont opérationnels,
  • la charge machine est faible,
  • Drupal répond correctement en accès direct.
Implémentation

Traefik est utilisé comme reverse-proxy unique pour l’exposition HTTPS.
Les services sont déclarés via labels Docker, sans indication explicite du réseau à utiliser pour joindre le backend Drupal.

Cette configuration repose donc sur un comportement implicite du provider Docker de Traefik pour la sélection de l’adresse IP du service cible.

Problèmes rencontrés
  • Les requêtes HTTPS retournent systématiquement un 504 Gateway Timeout après ~30 secondes.
  • Le backend Drupal répond correctement lorsqu’il est appelé directement depuis l’environnement réseau adéquat.
  • Les métriques système (CPU, mémoire, I/O) ne montrent aucune anomalie.
  • TLS fonctionne correctement (handshake et certificat valides).

Le symptôme est trompeur : il imite une panne applicative ou une lenteur backend alors que l’application est saine.

Décisions prises
  • Tester explicitement l’accessibilité du backend depuis Traefik sur chaque interface réseau Docker.
  • Identifier que Traefik tente de joindre le backend via une IP associée à un réseau interne auquel il n’est pas connecté.
  • Rendre explicite le réseau Docker utilisé par Traefik pour ce service, afin d’éliminer toute ambiguïté.
Résultat

L’ajout explicite du réseau Docker utilisé par Traefik (traefik.docker.network) permet :

  • une résolution immédiate des requêtes HTTPS,
  • la disparition complète des erreurs 504,
  • un comportement stable et reproductible.

Aucune modification applicative n’a été nécessaire côté Drupal.

Prochaines étapes
  • Considérer toute exposition de service multi-network comme un point de vigilance explicite.
  • Formaliser ce pattern comme un signal transversal sur les erreurs de topologie réseau masquées par les reverse-proxy.
  • Capitaliser sur ce build log pour enrichir la grille de lecture des incidents “backend sain / proxy en échec”.

Add new comment