Sem KYC — sem ID, sem selfie, sem documentos. Pague com cripto: BTC, USDT, USDC, ETH, SOL, LTC
Idioma: Português
Comece agora

Referência de erro de proxy · Códigos de status HTTP

502 Bad Gateway por proxy: o que significa e como corrigir

Código de status HTTP (5xx, erro do servidor): a mensagem exata em cada ferramenta, as causas prováveis em ordem, e o conserto que funciona.

Última atualização: · 5 min de leitura

Resposta rápida

O que 502 Bad Gateway significa com um proxy?

502 Bad Gateway significa que um gateway ou proxy recebeu resposta inválida, ou nenhuma, do próximo servidor na cadeia. Via proxies residenciais CrawlRelay, 502 geralmente indica falha da conexão de saída ou do alvo no meio da requisição. Tente uma vez com conexão nova. Se 502 persistir num site só, o problema é o site; se em todos, verifique sua configuração.

502 Bad Gateway de relance

Erro502 Bad Gateway
TipoCódigo de status HTTP (5xx, erro do servidor)
Enviado porO gateway proxy ou um proxy reverso do alvo
Definido emRFC 9110, section 15.6.3
Tentar novamente?Sim, em nova conexão ou sessão
Primeira verificaçãoTente novamente com um novo IP; se persistir, teste alvo sem proxy

O que 502 Bad Gateway significa?

RFC 9110 descreve 502 como forma do gateway indicar que o servidor atrás respondeu mal. Em cadeia de scraping há pelo menos dois gateways: o proxy e, muito comum, CDN ou balanceador de carga ante o site. Qualquer um pode gerar 502, e o corpo da resposta usualmente indica qual.

Redes residenciais adicionam outro elo. A saída é conexão doméstica real, e o dispositivo pode sair da rede durante requisição. O gateway então não tem resposta válida para enviar.

Como a 502 aparece em Python, curl, Node.js e navegadores?

A mesma falha aparece de forma diferente em cada ferramenta. Estas são as mensagens para buscar nos seus logs:

  • Python requests: status_code == 502, ou ProxyError('Unable to connect to proxy', OSError('Tunnel connection failed: 502 Bad Gateway')) para alvos HTTPS
  • curl: curl: (56) CONNECT tunnel failed, response 502
  • Navegadores: net::ERR_TUNNEL_CONNECTION_FAILED em HTTPS, ou página de erro simples em HTTP
  • Scrapy: retenta por padrão, pois 502 está em RETRY_HTTP_CODES

O que causa a 502?

Mais provável inicialmente:

  • A saída saiu do pool durante a requisição, comum em rede residencial.
  • O alvo fechou conexão, falhou ou retornou algo malformado.
  • CDN do alvo falhou ao alcançar seu servidor de origem.
  • Falha de DNS no alvo do lado da saída, ex: erro de digitação no hostname.
  • Segmentação muito restrita que reduz saídas, gerando repetição de falhas em mesmas.

Como diagnosticar a 502 passo a passo?

  1. Retente requisição com conexão nova. 502 único que some foi saída descartada.
  2. Leia corpo e cabeçalhos da resposta: erro CDN nomeia o CDN; mensagem curta do proxy nomeia gateway.
  3. Teste o alvo sem proxy na sua conexão.
  4. Amplie segmentação de cidade para país e compare taxa de falhas.
Teste a URL com erro usando curl (porta HTTP, modo verbose)
# 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

Como corrigir a 502?

  • Retente com novo ID de sessão ou sem um, para sair por outra saída.
  • Defina timeouts sensatos para que saída morta falhe rápido, não fique pendurado.
  • Registre 502s por host e pause host que tenha aumento repentino: provavelmente fora do ar.
Python: tentar novamente com Retry-After, backoff exponencial e 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))

Devo tentar novamente após a 502?

Sim, retente 502, mas com saída nova e limite de tentativas. Duas ou três tentativas com backoff curto bastam. 502 que persiste em várias saídas indica problema no alvo; mais tentativas não ajudam. Acompanhe taxa por host para que um site ruim não encha sua fila de retry.

Como 502 Bad Gateway se aplica ao CrawlRelay?

Com CrawlRelay, descarte ou gere novo ID de sessão para sair, normalmente, por IP residencial diferente. Sessão sticky prende você a uma saída, então 502 dentro dela deve encerrar essa sessão no seu código. O guia de sessões explica como rotacionar uma sessão limpidamente.

Gateway: gw.crawlrelay.com, porta 7777 (HTTP, HTTPS via CONNECT) e porta 7778 (SOCKS5). Formato do usuário: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Relacionado: 504 Gateway Timeout · Connection reset · 503 Service Unavailable.

502 Bad Gateway: perguntas que desenvolvedores fazem

O erro 502 é culpa do proxy ou do site?

Pode ser qualquer um dos dois. Leia o corpo da resposta: páginas de erro CDN indicam a CDN, que aponta para o site. Um 502 em todos os sites que você tenta indica o proxy ou sua configuração, enquanto um 502 em um só site indica aquele site. Teste o mesmo URL sem o proxy para ter certeza.

Por que erros 502 são mais comuns com proxies residenciais?

Saídas residenciais são conexões residenciais reais, e os dispositivos ficam offline, mudam de rede ou perdem sinal. Uma requisição em andamento quando isso acontece termina com 502 ou reset. Um bom scraper trata esses casos como normais e tenta de novo numa nova saída, com um limite pequeno.

Devo mudar para sessões persistentes para reduzir 502?

Não. Uma sessão persistente te mantém em uma saída só, então se essa saída falha, todas as requisições da sessão falham. Use conexões rotativas para páginas independentes e sessões persistentes só para fluxos multi-etapas. Encerre a sessão persistente após um 502 e inicie uma nova.

Outros erros de proxy nesta referência

Códigos de status HTTP

Erros no navegador e cliente

Erros de conexão e TLS

Proxies residenciais com documentação que cobre os casos de falha

CrawlRelay proxies residenciais a partir de US$ 0,50/GB, tráfego que nunca expira.

A partir de US$ 0,50/GB · sem KYC

Comece agora