Jawaban cepat
Apa arti 504 Gateway Timeout dengan proxy?
504 Gateway Timeout berarti gateway, seperti proxy atau CDN situs, menunggu terlalu lama ke server berikutnya dan menyerah. Melalui proxy residential CrawlRelay, koneksi yang lambat biasanya adalah target atau koneksi rumah exit. Coba ulang sekali di exit baru, buat halaman ringan, dan atur timeout klien Anda agar permintaan lambat gagal sesuai keinginan Anda.
504 Gateway Timeout sekilas
| Kesalahan | 504 Gateway Timeout |
|---|---|
| Tipe | Kode status HTTP (5xx, kesalahan server) |
| Dikirim oleh | Gateway proxy atau CDN di depan target |
| Didefinisikan dalam | RFC 9110, section 15.6.5 |
| Mencoba lagi? | Ya, sekali atau dua kali di exit baru |
| Periksa pertama | Ukur waktu permintaan yang sama tanpa proxy |
Apa arti 504 Gateway Timeout?
RFC 9110 mendefinisikan 504 sebagai gateway yang tidak mendapat respons tepat waktu dari server hulu yang dibutuhkannya. Ini adalah kembar timeout dari 502: 502 berarti jawaban buruk, 504 berarti tidak ada jawaban tepat waktu.
Proxy residential menambah satu lompatan yang tidak ada di permintaan langsung: trafik Anda ke gateway, lalu ke koneksi rumah, lalu ke situs. Setiap lompatan menambah delay, dan yang paling lambat menentukan total.
Seperti apa a 504 dalam Python, curl, Node.js, dan browser?
Kegagalan yang sama dicetak berbeda di setiap alat. Ini adalah pesan yang perlu dicari di log Anda:
- Python requests:
status_code == 504, atauTunnel connection failed: 504 Gateway Timeoutuntuk target HTTPS - curl:
curl: (56) CONNECT tunnel failed, response 504 - Scrapy: coba ulang default (504 ada di
RETRY_HTTP_CODES) - Situs yang dilayani CDN: halaman kesalahan dari CDN dengan status 504
Apa penyebab a 504?
Kemungkinan besar pertama:
- Target lambat, misal halaman pencarian yang butuh detik lama untuk dibangun.
- Exit lambat, seperti koneksi rumah lemah atau seluler penuh.
- Respons besar yang butuh waktu lebih lama dari kesabaran gateway.
- Origin situs yang mengalami timeout di balik CDN-nya, lalu menjawab 504.
Bagaimana cara mendiagnosis a 504 langkah demi langkah?
- Ukur waktu permintaan tanpa proxy. Jika lambat di rumah juga, target lambat.
- Coba ulang di exit baru dan bandingkan waktu.
- Periksa ukuran respons: halaman 5 MB berbeda masalah dengan 50 KB.
- Baca isi untuk lihat apakah halaman kesalahan ditulis CDN atau proxy.
# 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_URLBagaimana cara memperbaiki a 504?
- Atur timeout eksplisit: kira-kira 10 detik untuk koneksi dan 30 sampai 60 detik untuk baca halaman normal.
- Coba ulang di exit baru sekali atau dua kali.
- Minta lebih sedikit: lewati gambar dan media jika hanya perlu HTML atau API JSON di balik halaman.
- Jadwalkan halaman berat di jam sepi untuk negara target.
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...Haruskah saya mencoba lagi setelah a 504?
Coba ulangi 504 satu atau dua kali pada exit baru, dengan jeda singkat. Jika URL yang sama timeout di beberapa exit, targetnya lambat atau overload: kurangi kecepatan di host itu atau coba nanti. Menaikkan timeout klien Anda hanya membantu jika timeout gateway bukan batasnya.
Bagaimana 504 Gateway Timeout berlaku untuk CrawlRelay?
Setiap koneksi baru ke CrawlRelay tanpa ID sesi biasanya mendapat exit residential yang berbeda, jadi coba ulang biasanya menguji koneksi rumah lain. Untuk target yang lambat, jaga payload kecil dan ukur waktu ke byte pertama terpisah dari total waktu unduh.
Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS melalui CONNECT) dan port 7778 (SOCKS5). Format username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Terkait: 502 Bad Gateway · Read timed out · 503 Service Unavailable.
504 Gateway Timeout: pertanyaan yang sering ditanyakan pengembang
Apa perbedaan antara 502 dan 504?
Keduanya berasal dari gateway. 502 artinya server di belakangnya mengirim respons tidak valid atau memutus koneksi. 504 artinya tidak mengirim apapun tepat waktu. Dengan proxy residential, 502 sering berarti exit putus, dan 504 berarti target lambat atau koneksi rumah lambat.
Bisakah saya menaikkan timeout proxy?
Anda mengontrol timeout klien Anda, bukan timeout internal gateway. Atur timeout sambung dan baca secara eksplisit agar permintaan lambat gagal dengan terduga, coba ulang di exit baru, dan buat halaman lebih ringan. Jika target butuh respons sangat lama, ambil API-nya atau halaman yang lebih ringan.
Apakah proxy mobile lebih lambat daripada residential?
Bisa jadi, karena exit mobile berbagi sel dengan pengguna lain dan kecepatannya berubah sesuai sinyal dan beban. Gunakan IP mobile untuk target yang membutuhkannya dan IP residential untuk crawling massal. Ukur waktu respons Anda sendiri per tipe exit sebelum memutuskan.
Kesalahan proxy lain dalam referensi ini
Kode status HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Kesalahan browser dan klien
Error koneksi dan TLS
Proxy residensial dengan dokumentasi yang membahas kasus kegagalan
Proxy residensial CrawlRelay dari US$0,50/GB, lalu lintas yang tidak pernah kedaluwarsa.