Senza KYC — niente documento, selfie o altri documenti. Paga in crypto: BTC, USDT, USDC, ETH, SOL, LTC
Lingua: Italiano
Inizia ora

Riferimento errori proxy · Codici di stato HTTP

504 Gateway Timeout tramite proxy: cause e soluzioni

Codice di stato HTTP (5xx, errore server): il messaggio esatto in ogni strumento, le cause probabili in ordine e la soluzione che funziona.

Ultimo aggiornamento: · 4 minuti di lettura

Risposta rapida

Cosa significa 504 Gateway Timeout con un proxy?

504 Gateway Timeout significa che un gateway, come il proxy o il CDN del sito, ha atteso troppo per il server successivo e ha rinunciato. Tramite proxy residentiali CrawlRelay, il collo di bottiglia è solitamente il target o la connessione domestica dell’exit. Riprova una volta su un exit nuovo, tieni leggere le pagine e imposta timeout client per far fallire in modo controllato una richiesta lenta.

504 Gateway Timeout a colpo d'occhio

Errore504 Gateway Timeout
TipoCodice di stato HTTP (5xx, errore server)
Inviato daIl gateway proxy o un CDN davanti al target
Definito inRFC 9110, section 15.6.5
Riprovarlo?Sì, una o due volte su un nuovo exit
Prima verificaCronometra la stessa richiesta senza proxy

Cosa significa 504 Gateway Timeout?

La RFC 9110 definisce 504 come un gateway che non ha ricevuto una risposta tempestiva dal server a monte necessario. È il fratello timeout del 502: 502 significa risposta errata, 504 significa nessuna risposta in tempo.

Un proxy residential aggiunge un passaggio che una richiesta diretta non ha: il traffico passa al gateway, poi a una connessione domestica, poi al sito. Ogni passaggio aggiunge ritardo, e quello più lento decide il totale.

Com'è a 504 in Python, curl, Node.js e browser?

Lo stesso errore si presenta in modo diverso in ogni strumento. Questi sono i messaggi da cercare nei log:

  • Python requests: status_code == 504, o Tunnel connection failed: 504 Gateway Timeout per target HTTPS
  • curl: curl: (56) CONNECT tunnel failed, response 504
  • Scrapy: ritenta di default (504 in RETRY_HTTP_CODES)
  • Siti serviti da CDN: una pagina errore dal CDN con stato 504

Cosa causa a 504?

Probabilmente prima:

  • Un target lento, per esempio una pagina di ricerca che impiega molti secondi a elaborare.
  • Un exit lento, come una connessione domestica debole o una cella mobile congestionata.
  • Risposte grandi che impiegano più tempo della pazienza del gateway.
  • Timeout dell’origine del sito dietro il suo CDN, che risponde 504.

Come diagnostico a 504 passo dopo passo?

  1. Cronometra la richiesta senza proxy. Se anche da casa è lenta, il target è lento.
  2. Riprova su un exit nuovo e confronta i tempi.
  3. Controlla la dimensione della risposta: una pagina da 5 MB è un problema diverso da una da 50 KB.
  4. Leggi il corpo per capire se la pagina errore è del CDN o del proxy.
Testa l'URL che fallisce con curl (porta HTTP, 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

Come risolvo a 504?

  • Imposta timeout espliciti: circa 10 secondi per la connessione e da 30 a 60 per leggere pagine normali.
  • Riprova su un exit nuovo una o due volte.
  • Richiedi meno: salta immagini e media se ti serve solo l’HTML o l’API JSON dietro la pagina.
  • Programma le pagine pesanti in orari non di punta per il paese target.
Python httpx: timeout espliciti per connect, read, write e 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...

Devo riprovare dopo a 504?

Riprova un 504 una o due volte su una nuova exit, con un breve backoff. Se lo stesso URL scade su più exit, il target è lento o sovraccarico: riduci il ritmo su quell'host o prova più tardi. Aumentare il timeout client aiuta solo se il timeout del gateway non è il limite.

Come si applica 504 Gateway Timeout a CrawlRelay?

Ogni nuova connessione a CrawlRelay senza un ID di sessione di solito ottiene una exit residenziale diversa, quindi un retry normalmente prova un'altra connessione home. Per i target lenti, mantieni piccoli i payload e misura il tempo al primo byte separatamente dal tempo totale di download.

Gateway: gw.crawlrelay.com, porta 7777 (HTTP, HTTPS tramite CONNECT) e porta 7778 (SOCKS5). Formato username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Correlato: 502 Bad Gateway · Read timed out · 503 Service Unavailable.

504 Gateway Timeout: domande frequenti dagli sviluppatori

Qual è la differenza tra 502 e 504?

Entrambi vengono da un gateway. Un 502 significa che il server dietro ha inviato una risposta non valida o ha chiuso la connessione. Un 504 significa che non ha inviato nulla in tempo. Con i proxy residenziali, 502 spesso indica un'exit caduta, e 504 un target lento o una connessione home lenta.

Posso aumentare il timeout del proxy?

Tu controlli i timeout del client, non quelli interni del gateway. Imposta esplicitamente connect e read timeout così le richieste lente falliscono prevedibilmente, ritenti su una nuova exit e rendi le pagine più leggere. Se un target richiede risposte molto lunghe, prendi la sua API o una pagina più leggera invece.

I proxy mobili sono più lenti di quelli residenziali?

Possono esserlo, perché un'exit mobile condivide una cella con altri utenti e la sua velocità cambia con il segnale e il carico. Usa IP mobili per target che ne hanno bisogno e IP residenziali per crawls bulk. Misura i tuoi tempi di risposta per tipo di exit prima di decidere.

Altri errori proxy in questo riferimento

Codici di stato HTTP

Errori del browser e client

Errori di connessione e TLS

Proxy residenziali con documentazione che copre i casi di errore

Proxy residenziali CrawlRelay da 0,50 USD/GB, traffico che non scade mai.

Da 0,50 USD/GB · senza KYC

Inizia ora