Kurze Antwort
Was bedeutet 504 Gateway Timeout bei einem Proxy?
504 Gateway Timeout bedeutet, dass ein Gateway, wie der Proxy oder das CDN der Seite, zu lange auf den nächsten Server gewartet und aufgegeben hat. Bei CrawlRelay Residential Proxies ist die langsame Verbindung meist das Ziel oder die Heimverbindung des Exits. Versuchen Sie es einmal auf neuem Exit, halten Sie Seiten leicht und setzen Sie eigene Client-Timeouts, damit langsame Anfragen kontrolliert fehlschlagen.
504 Gateway Timeout auf einen Blick
| Fehler | 504 Gateway Timeout |
|---|---|
| Typ | HTTP-Statuscode (5xx, Serverfehler) |
| Gesendet von | Das Proxy-Gateway oder ein CDN vor dem Ziel |
| Definiert in | RFC 9110, section 15.6.5 |
| Noch einmal versuchen? | Ja, ein- bis zweimal auf neuem Exit |
| Zuerst prüfen | Testen Sie die gleiche Anfrage ohne Proxy |
Was bedeutet 504 Gateway Timeout?
RFC 9110 definiert 504 als Gateway, das keine rechtzeitige Antwort vom Upstream-Server erhalten hat, den es benötigte. Es ist das Timeout-Gegenstück zu 502: 502 bedeutet falsche Antwort, 504 bedeutet keine Antwort rechtzeitig.
Ein Residential Proxy fügt eine Etappe hinzu, die eine direkte Anfrage nicht hat: Ihr Traffic geht ans Gateway, von dort zur Heimverbindung, dann zur Seite. Jede Etappe verzögert, der langsamste bestimmt die Gesamtzeit.
Wie sieht a 504 in Python, curl, Node.js und Browsern aus?
Der gleiche Fehler wird in jedem Tool anders angezeigt. Hier sind die Meldungen, nach denen Sie in Ihren Logs suchen sollten:
- Python requests:
status_code == 504, oderTunnel connection failed: 504 Gateway Timeoutfür HTTPS-Ziele - curl:
curl: (56) CONNECT tunnel failed, response 504 - Scrapy: Standardmäßig Retry (504 ist in
RETRY_HTTP_CODES) - CDN-gestützte Seiten: Fehlerseite vom CDN mit Status 504
Was verursacht a 504?
Wahrscheinlich zuerst:
- Langsames Ziel, z. B. eine Suchseite, die viele Sekunden für den Aufbau braucht.
- Langsamer Exit, etwa schwache Heimverbindung oder überlastetes Mobilfunknetz.
- Große Antworten, die länger brauchen als die Geduld des Gateways.
- Das Origin der Seite, das hinter dem CDN einen Timeout verursacht und dann 504 zurückgibt.
Wie diagnostiziere ich a 504 Schritt für Schritt?
- Messen Sie die Anfragezeit ohne Proxy. Ist sie auch zu Hause langsam, ist das Ziel langsam.
- Versuchen Sie es auf neuem Exit erneut und vergleichen die Zeiten.
- Prüfen Sie die Antwortgröße: 5 MB-Seite ist ein anderes Problem als 50 KB.
- Lesen Sie den Body, um zu sehen, ob das CDN oder der Proxy die Fehlerseite schrieb.
# 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_URLWie behebe ich a 504?
- Setzen Sie explizite Timeouts: ca. 10 Sekunden für Verbindung und 30 bis 60 Sekunden für das Lesen bei normalen Seiten.
- Retryen Sie ein- bis zweimal auf neuem Exit.
- Fordern Sie weniger an: verzichten Sie auf Bilder und Medien, wenn Sie nur HTML oder JSON-API benötigen.
- **Planen Sie schwere Seiten außerhalb der Spitzenzeiten des Ziel-Landes.
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...Soll ich nach a 504 einen erneuten Versuch starten?
Versuchen Sie bei einem neuen Exit ein- oder zweimal, einen 504 mit kurzem Backoff erneut. Wenn dieselbe URL bei mehreren Exits zeitlich ausläuft, ist das Ziel langsam oder überlastet: senken Sie Ihre Rate für diesen Host oder versuchen Sie es später erneut. Die Verlängerung des Client-Timeouts hilft nur, wenn der Gateway-Timeout nicht die Grenze ist.
Wie wirkt sich 504 Gateway Timeout auf CrawlRelay aus?
Jede neue Verbindung zu CrawlRelay ohne Session-ID erhält normalerweise einen anderen residential Exit, daher testet ein erneuter Versuch normalerweise eine andere Home-Verbindung. Bei langsamen Zielen halten Sie Payloads klein und messen Sie die Zeit bis zum ersten Byte getrennt von der gesamten Downloadzeit.
Gateway: gw.crawlrelay.com, Port 7777 (HTTP, HTTPS über CONNECT) und Port 7778 (SOCKS5). Benutzername im Format: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Verwandt: 502 Bad Gateway · Read timed out · 503 Service Unavailable.
504 Gateway Timeout: Fragen, die Entwickler stellen
Was ist der Unterschied zwischen 502 und 504?
Beides kommt von einem Gateway. Ein 502 bedeutet, dass der dahinterliegende Server eine ungültige Antwort geschickt oder die Verbindung abgebrochen hat. Ein 504 bedeutet, dass er rechtzeitig nichts gesendet hat. Bei residential Proxies weist 502 oft auf einen abgebrochenen Exit hin, 504 auf ein langsames Ziel oder eine langsame Home-Verbindung.
Kann ich das Timeout des Proxys erhöhen?
Sie kontrollieren die Timeouts Ihres Clients, nicht die internen des Gateways. Setzen Sie Connect- und Read-Timeouts explizit, damit langsame Anfragen vorhersehbar abbrechen, auf einem neuen Exit erneut versuchen und Seiten leichter laden. Wenn ein Ziel sehr lange Antworten benötigt, rufen Sie stattdessen dessen API oder eine leichtere Seite ab.
Sind mobile Proxies langsamer als residential?
Das können sie, weil ein mobiler Exit eine Zelle mit anderen Nutzern teilt und seine Geschwindigkeit von Signal und Last abhängt. Nutzen Sie mobile IPs für Ziele, die sie benötigen, und residential IPs für Bulk-Crawling. Messen Sie Ihre eigenen Antwortzeiten pro Exit-Typ, bevor Sie entscheiden.
Weitere Proxy-Fehler in diesem Leitfaden
HTTP-Statuscodes
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Browser- und Clientfehler
Verbindungs- und TLS-Fehler
Residential-Proxys mit Dokumentationen, die Fehlerfälle abdecken
CrawlRelay Residential-Proxys von 0,50 $/GB, Traffic, der nie abläuft.