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

502 Bad Gateway via un proxy : ce que cela signifie et comment le corriger

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 502 Bad Gateway avec un proxy ?

502 Bad Gateway signifie qu’une passerelle ou un proxy a reçu une réponse invalide ou aucune du serveur suivant dans la chaîne. Avec les proxys résidentiels CrawlRelay, un 502 signifie souvent que la connexion de sortie ou la cible a échoué en cours de requête. Retentez une fois avec une nouvelle connexion. Si les 502 continuent sur un seul site, le problème vient du site ; si c’est sur tous, vérifiez votre configuration.

502 Bad Gateway en un coup d'œil

Erreur502 Bad Gateway
TypeCode HTTP (5xx, erreur serveur)
Envoyé parLa passerelle proxy ou un reverse proxy devant la cible
Défini dansRFC 9110, section 15.6.3
Réessayer ?Oui, lors d’une nouvelle connexion ou session
Vérification initialeRetentez une fois avec une nouvelle IP ; si ça persiste, testez la cible sans proxy

Que signifie 502 Bad Gateway ?

La RFC 9110 décrit le 502 comme la façon pour une passerelle de dire que le serveur derrière a mal répondu. Dans une chaîne de scraping, il y a au moins deux passerelles : le proxy et souvent un CDN ou un load balancer devant le site. L’une ou l’autre peut produire un 502, et le corps de la réponse indique généralement laquelle.

Les réseaux résidentiels ajoutent un lien supplémentaire. La sortie est une vraie connexion domestique, et un appareil peut quitter le réseau en plein milieu d’une requête. La passerelle n’a alors rien de valide à renvoyer.

À quoi ressemble a 502 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 == 502, ou ProxyError('Unable to connect to proxy', OSError('Tunnel connection failed: 502 Bad Gateway')) pour cibles HTTPS
  • curl : curl: (56) CONNECT tunnel failed, response 502
  • Navigateurs : net::ERR_TUNNEL_CONNECTION_FAILED sur HTTPS, ou une page d’erreur basique sur HTTP
  • Scrapy : retenté par défaut, car 502 est dans RETRY_HTTP_CODES

Quelles sont les causes de a 502 ?

Probablement en premier lieu :

  • La sortie a quitté le pool en cours de requête, ce qui arrive sur tout réseau résidentiel.
  • La cible a fermé la connexion, planté ou renvoyé une donnée malformée.
  • Le CDN de la cible a échoué à joindre son serveur d’origine.
  • Échec DNS pour la cible côté sortie, par exemple une faute de frappe dans le nom d’hôte.
  • Ciblage très restreint ne laissant que peu d’exits, donc les échecs se répètent sur peu d’IP.

Comment diagnostiquer a 502 étape par étape ?

  1. Retentez la requête sur une nouvelle connexion. Un 502 unique qui disparaît était un exit tombé.
  2. Lisez le corps et les en-têtes : une page d’erreur CDN nomme le CDN ; un message court proxy nomme la passerelle.
  3. Testez la cible depuis votre propre connexion sans proxy.
  4. Élargissez le ciblage de la ville au pays et comparez le taux d’échec.
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 502 ?

  • Retentez avec un nouvel ID de session ou sans, pour passer par un autre exit.
  • Fixez des délais d’attente raisonnables pour qu’une sortie morte échoue rapidement au lieu de bloquer.
  • Consignez les 502 par hôte et suspendez un hôte dont le taux de 502 grimpe : il est probablement hors service.
Python : réessayer avec Retry-After, backoff exponentiel et jitter
import random
import time

import requests

PROXY = "http://USERNAME:[email protected]:7777"
PROXIES = {"http": PROXY, "https": PROXY}
RETRY_STATUSES = {429, 502, 503, 504}


def fetch(url, attempts=5, timeout=(10, 30)):
    for attempt in range(attempts):
        try:
            r = requests.get(url, proxies=PROXIES, timeout=timeout)
        except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
            r = None  # dropped exit, reset or timeout: a new connection gets a new exit
        if r is not None and r.status_code not in RETRY_STATUSES:
            return r
        retry_after = r.headers.get("Retry-After", "") if r is not None else ""
        if retry_after.isdigit():
            wait = int(retry_after)
        else:
            wait = min(60, 2 ** attempt) + random.uniform(0, 1)
        time.sleep(wait)
    raise RuntimeError("giving up on %s after %d attempts" % (url, attempts))

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

Oui, retentez un 502 mais avec une sortie fraîche et une limite. Deux ou trois tentatives avec backoff court suffisent. Un 502 persistant sur plusieurs sorties pointe vers la cible, et plus d’essais ne serviront pas. Surveillez le taux par hôte pour qu’un site en échec n’encombre pas votre file de retries.

Quelle est l'incidence de 502 Bad Gateway sur CrawlRelay ?

Avec CrawlRelay, abandonnez l’ID de session ou générez-en un nouveau pour sortir, en général, par une IP résidentielle différente. Une session sticky vous lie à un exit unique, donc un 502 dans une session sticky doit faire terminer cette session dans votre code. Le guide sessions explique comment faire tourner proprement une session.

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 : 504 Gateway Timeout · Connection reset · 503 Service Unavailable.

502 Bad Gateway : questions fréquentes des développeurs

Une erreur 502 est-elle due au proxy ou au site web ?

Les deux cas sont possibles. Lisez le corps de la réponse : les pages d'erreur CDN nomment le CDN, ce qui renvoie au site. Un 502 sur chaque site que vous essayez indique un problème côté proxy ou dans votre configuration, tandis qu'un 502 sur un seul site pointe vers ce site. Testez la même URL sans proxy pour en être sûr.

Pourquoi les erreurs 502 sont-elles plus fréquentes avec des proxies résidentiels ?

Les sorties résidentielles correspondent à des connexions réelles à domicile, et les appareils peuvent se déconnecter, changer de réseau ou perdre le signal. Une requête en cours dans ces conditions se termine par un 502 ou une réinitialisation. Un bon scraper considère ces cas comme normaux et réessaie depuis une nouvelle sortie, avec un plafond raisonnable.

Dois-je passer à des sessions persistantes pour réduire les 502 ?

Non. Une session persistante vous maintient sur une seule sortie, donc si cette sortie échoue, chaque requête de la session échoue aussi. Utilisez des connexions tournantes pour les pages indépendantes et des sessions persistantes uniquement pour des flux multi-étapes. Terminez une session persistante après un 502 et en commencez une nouvelle.

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