Sans KYC — pas d’ID, pas de selfie, pas de documents. Payer en crypto : BTC, USDT, USDC, ETH, SOL, LTC
Langue: Français
Commencez

Référence d’erreur proxy · Codes d'état HTTP

504 Gateway Timeout via un proxy : causes et solutions

Code HTTP (5xx, erreur serveur) : message exact dans chaque outil, causes probables par ordre, et solution efficace.

Dernière mise à jour: · 5 min de lecture

Réponse rapide

Que signifie 504 Gateway Timeout avec un proxy ?

504 Gateway Timeout signifie qu’une passerelle, comme le proxy ou le CDN du site, a trop attendu la réponse du serveur suivant et a abandonné. Avec les proxies résidentiels CrawlRelay, le maillon lent est souvent la cible ou la connexion domicile de la sortie. Réessayez une fois sur une nouvelle sortie, restez léger sur les pages, et fixez vos timeouts client pour qu’une requête lente échoue à votre convenance.

504 Gateway Timeout en un coup d'œil

Erreur504 Gateway Timeout
TypeCode HTTP (5xx, erreur serveur)
Envoyé parLa passerelle proxy ou un CDN devant la cible
Défini dansRFC 9110, section 15.6.5
Réessayer ?Oui, une ou deux fois sur une nouvelle sortie
Vérification initialeMesurez le temps de la même requête sans proxy

Que signifie 504 Gateway Timeout ?

La RFC 9110 définit le 504 comme une passerelle n’ayant pas reçu une réponse dans les temps depuis son serveur amont nécessaire. C’est le jumeau timeout du 502 : 502 signale une mauvaise réponse, 504 une absence de réponse dans le délai.

Un proxy résidentiel ajoute une étape que la requête directe n’a pas : votre trafic va d’abord à la passerelle, puis à une connexion domicile, puis au site. Chaque étape ajoute un délai, le plus lent détermine le total.

À quoi ressemble a 504 en Python, curl, Node.js et navigateurs ?

La même erreur s'affiche différemment selon chaque outil. Voici les messages à rechercher dans vos logs :

  • Python requests : status_code == 504, ou Tunnel connection failed: 504 Gateway Timeout pour cibles HTTPS
  • curl : curl: (56) CONNECT tunnel failed, response 504
  • Scrapy : retente automatiquement (504 est dans RETRY_HTTP_CODES)
  • Sites servis par CDN : une page d’erreur du CDN avec statut 504

Quelles sont les causes de a 504 ?

Probablement en premier lieu :

  • Une cible lente, par exemple une page de recherche qui prend plusieurs secondes à générer.
  • Une sortie lente, comme une connexion domicile faible ou une cellule mobile congestionnée.
  • Des réponses lourdes dépassant la patience de la passerelle.
  • Le serveur d’origine du site qui répond trop lentement derrière son CDN, lequel renvoie alors un 504.

Comment diagnostiquer a 504 étape par étape ?

  1. Mesurez la requête sans proxy. Si elle est lente également, la cible est lente.
  2. Réessayez sur une nouvelle sortie et comparez les temps.
  3. Vérifiez la taille de réponse : une page de 5 Mo n’a pas le même problème qu’une de 50 Ko.
  4. Lisez le corps pour voir si la page d’erreur vient du CDN ou du proxy.
Tester l'URL en échec avec curl (port HTTP, mode verbeux)
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL

Comment résoudre a 504 ?

  • Fixez des timeouts explicites : environ 10 secondes pour la connexion et 30 à 60 secondes pour la lecture pour des pages normales.
  • Réessayez une ou deux fois sur une nouvelle sortie.
  • Demandez moins : évitez images et médias si vous n’avez besoin que du HTML ou de l’API JSON derrière la page.
  • Programmez les pages lourdes hors heures de pointe pour le pays ciblé.
Python httpx : timeouts explicites de connexion, lecture, écriture et pool
import httpx

proxy = "http://USERNAME:[email protected]:7777"
timeout = httpx.Timeout(connect=10.0, read=30.0, write=10.0, pool=10.0)

with httpx.Client(proxy=proxy, timeout=timeout) as client:
    try:
        r = client.get("https://api.ipify.org")
        print(r.status_code, r.text)
    except httpx.TimeoutException as exc:
        print("timed out:", type(exc).__name__)  # ConnectTimeout, ReadTimeout...

Dois-je réessayer après a 504 ?

Retentez un 504 une ou deux fois sur une sortie fraîche, avec un court délai de reprise. Si la même URL expire plusieurs fois sur plusieurs sorties, la cible est lente ou surchargée : réduisez votre débit sur cet hôte ou réessayez plus tard. Augmenter le délai d'attente de votre client aide seulement si le délai du gateway n'est pas la limite.

Quelle est l'incidence de 504 Gateway Timeout sur CrawlRelay ?

Chaque nouvelle connexion à CrawlRelay sans ID de session obtient généralement une sortie résidentielle différente, donc une nouvelle tentative teste normalement une autre connexion domicile. Pour les cibles lentes, gardez les charges utiles petites et mesurez le temps au premier octet séparément du temps total de téléchargement.

Passerelle : gw.crawlrelay.com, port 7777 (HTTP, HTTPS via CONNECT) et port 7778 (SOCKS5). Format du nom d'utilisateur : USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Voir aussi : 502 Bad Gateway · Read timed out · 503 Service Unavailable.

504 Gateway Timeout : questions fréquentes des développeurs

Quelle est la différence entre 502 et 504 ?

Les deux viennent d'un gateway. Un 502 signifie que le serveur derrière a envoyé une réponse invalide ou a coupé la connexion. Un 504 signifie qu'il n'a rien envoyé à temps. Avec les proxies résidentiels, 502 pointe souvent vers une sortie coupée, et 504 vers une cible lente ou une connexion domicile lente.

Puis-je augmenter le délai d'attente du proxy ?

Vous contrôlez les délais de votre client, pas ceux internes du gateway. Définissez explicitement vos délais de connexion et de lecture pour que les requêtes lentes échouent de manière prévisible, retentez sur une nouvelle sortie, et rendez les pages plus légères. Si une cible nécessite des réponses très longues, récupérez son API ou une page plus légère à la place.

Les proxies mobiles sont-ils plus lents que les résidentiels ?

Ils peuvent l'être, car une sortie mobile partage une cellule avec d'autres utilisateurs et sa vitesse varie selon le signal et la charge. Utilisez des IP mobiles pour les cibles qui en ont besoin et des IP résidentielles pour le crawling massif. Mesurez vos propres temps de réponse par type de sortie avant de décider.

Autres erreurs de proxy dans cette référence

Codes d'état HTTP

Erreurs du navigateur et du client

Erreurs de connexion et TLS

Proxies résidentiels avec documentation couvrant les cas de défaillance

Proxies résidentiels CrawlRelay de 0,50 $US/GB, trafic sans expiration.

À partir de 0,50 $US/GB · sans KYC

Commencez