Hızlı cevap
Konut proxy ile 504 Gateway Timeout ne anlama gelir?
504 Gateway Timeout bir ağ geçidi (proxy veya sitenin CDN'si gibi) sonraki sunucu için çok uzun bekleyip vazgeçmiş demektir. CrawlRelay ev tipi proxyleriyle genelde yavaş bağlantı hedefte veya çıkışın ana bağlantısıdır. Yeni bir çıkışta bir kez deneyin, sayfaları hafif tutun ve kendi istemci zaman aşımı ayarlarınızı kullanın ki yavaş istek sizin belirleyeceğiniz şekilde başarısız olsun.
504 Gateway Timeout hızlı bakış
| Hata | 504 Gateway Timeout |
|---|---|
| Tür | HTTP durum kodu (5xx, sunucu hatası) |
| Gönderen | Proxy ağ geçidi veya hedef önündeki bir CDN |
| Tanımlandığı yer | RFC 9110, section 15.6.5 |
| Tekrar denemek ister misiniz? | Evet, yeni bir çıkışta bir ya da iki kez |
| İlk kontrol | Proxy olmadan aynı isteğin zamanlamasını yapın |
504 Gateway Timeout ne anlama gelir?
RFC 9110 504'ü, ihtiyaç duyduğu yukarı akış sunucusundan zamanında yanıt alamayan ağ geçidi olarak tanımlar. 502'nin zaman aşımı ikizidir: 502 kötü yanıt, 504 ise zamanında yanıt yok demektir.
Ev tipi proxy, doğrudan istekte olmayan bir ara katman ekler: trafik önce ağ geçidine, sonra ev bağlantısına, sonra siteye gider. Her katman gecikme ekler ve en yavaşı toplam gecikmeye karar verir.
Python, curl, Node.js ve tarayıcılarda a 504 nasıl görünür?
Aynı başarısızlık her araçta farklı şekilde görünür. Loglarınızda aramanız gereken mesajlar şunlardır:
- Python requests:
status_code == 504veya HTTPS hedeflerdeTunnel connection failed: 504 Gateway Timeout - curl:
curl: (56) CONNECT tunnel failed, response 504 - Scrapy: varsayılan olarak tekrar denenir (504
RETRY_HTTP_CODESdedir) - CDN servisli siteler: CDN'den 504 durumlu hata sayfası
a 504 neden olur?
Öncelikle en olası sebep:
- Yavaş hedef, örneğin oluşturması birkaç saniye süren arama sayfası.
- Yavaş çıkış, zayıf ev bağlantısı veya yoğun mobil hücre gibi.
- Geç varan büyük yanıtlar, ağ geçidinin sabrını aşar.
- Sitenin kendi orijini CDN arkasında zaman aşımı yapıyorsa, CDN 504 döndürür.
a 504 nasıl adım adım teşhis edilir?
- Proxy olmadan isteği zamanlayın. Evde de yavaşsa hedef yavaştır.
- Yeni bir çıkışta deneyip zamanlamaları karşılaştırın.
- Yanıt boyutunu kontrol edin: 5 MB sayfa, 50 KB sayfadan farklı bir sorundur.
- Hata sayfasını CDN mi yoksa proxy mi oluşturmuş gövdeyi okuyun.
# 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_URLa 504 nasıl düzeltilir?
- Açık zamanaşımı ayarları yapın: bağlanmak için 10 saniye, normal sayfalar okuması için 30-60 saniye arası.
- Yeni çıkışta bir veya iki kez deneyin.
- Daha az istek yapın: sadece HTML veya JSON API gerekiyorsa resim ve medyayı atlayın.
- **Yoğun sayfaları hedef ülkenin düşük trafik saatlerine planlayın.
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...a 504 sonrası tekrar denenmeli mi?
Taze bir çıkışta 504 hatasını bir veya iki kez kısa bir bekleme ile yeniden deneyin. Aynı URL birden fazla çıkışta zaman aşımına uğruyorsa, hedef yavaş veya aşırı yüklüdür: o sunucudaki hızınızı azaltın veya daha sonra tekrar deneyin. İstemci zaman aşımınızı artırmak, yalnızca gateway zaman aşımı sınır değilse fayda sağlar.
504 Gateway Timeout CrawlRelay için nasıl geçerli?
CrawlRelay'e session ID olmadan yapılan her yeni bağlantı genellikle farklı bir ev çıkışı alır, bu nedenle bir yeniden deneme normalde başka bir ev bağlantısını test eder. Yavaş hedeflerde, yükleri küçük tutun ve ilk byte'a kadar geçen süreyi toplam indirme süresinden ayrı olarak ölçün.
Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS CONNECT üzerinden) ve port 7778 (SOCKS5). Kullanıcı adı formatı: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. İlgili: 502 Bad Gateway · Read timed out · 503 Service Unavailable.
504 Gateway Timeout: geliştiricilerin sorduğu sorular
502 ile 504 arasındaki fark nedir?
Her ikisi de bir gateway'den gelir. 502, arkasındaki sunucunun geçersiz yanıt gönderdiği veya bağlantıyı kestiği anlamına gelir. 504, zamanında hiç yanıt gönderilmediği anlamına gelir. Yerleşik proxylerde 502 genellikle düşmüş bir çıkışa, 504 ise yavaş hedefe veya yavaş ev bağlantısına işaret eder.
Proxy'nin zaman aşımını artırabilir miyim?
İstemcinizin zaman aşımı ayarlarını siz kontrol edersiniz, gateway’in dahili zaman aşımlarını değil. Bağlanma ve okuma zaman aşımı sürelerini açıkça ayarlayın ki yavaş istekler öngörülebilir şekilde başarısız olsun, yeni bir çıkışta yeniden deneyin ve sayfaları hafifletin. Hedef çok uzun yanıtlar gerektiriyorsa, onun API'sini veya daha hafif bir sayfasını alın.
Mobil proxyler, yerleşik proxylerden daha mı yavaştır?
Olabilir, çünkü bir mobil çıkış aynı hücreyi diğer kullanıcılarla paylaşır ve hızı sinyal ve yükle değişir. Mobil IP'leri ihtiyaç duyulan hedefler için, yerleşik IP'leri ise toplu tarama için kullanın. Karar vermeden önce kendi yanıt sürelerinizi çıkış türüne göre ölçün.
Bu referanstaki diğer proxy hataları
HTTP durum kodları
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Tarayıcı ve istemci hataları
Bağlantı ve TLS hataları
Başarısızlık durumları için dokümanlı konut proxy'ler
$0,50/GB sitesinden süresi hiç bitmeyen CrawlRelay konut proxy