ไม่ต้อง KYC — ไม่ต้องใช้บัตรประชาชน ไม่ต้องถ่ายเซลฟี่ ไม่ต้องเอกสาร จ่ายด้วยคริปโต: BTC, USDT, USDC, ETH, SOL, LTC
ภาษา: ไทย
เริ่มต้นเลย

ข้อมูลอ้างอิงข้อผิดพลาดพร็อกซี · รหัสสถานะ HTTP

504 Gateway Timeout ผ่าน proxy: สาเหตุและวิธีแก้ไข

รหัสสถานะ HTTP (5xx, เซิร์ฟเวอร์ผิดพลาด): ข้อความผิดพลาดที่แม่นยำในแต่ละเครื่องมือ สาเหตุที่เป็นไปได้ตามลำดับ และวิธีแก้ไขที่ใช้งานได้

อัปเดตล่าสุด:

คำตอบด่วน

504 Gateway Timeout หมายความว่าอย่างไรกับพร็อกซี?

504 Gateway Timeout หมายความว่า gateway เช่น proxy หรือ CDN ของเว็บไซต์ รอเวลานานเกินไปสำหรับเซิร์ฟเวอร์ถัดไปแล้วยอมแพ้ ผ่าน residential proxy ของ CrawlRelay ช่องทางช้าโดยปกติคือเป้าหมายหรือการเชื่อมต่อบ้านของ exit ลองใหม่ครั้งเดียวด้วย exit ใหม่ ทำหน้าเว็บให้เบา และตั้ง timeout ในฝั่ง client เพื่อให้คำขอล้มด้วยความช้าในแบบที่คุณกำหนด

504 Gateway Timeout แบบสั้นๆ

ข้อผิดพลาด504 Gateway Timeout
ประเภทรหัสสถานะ HTTP (5xx, เซิร์ฟเวอร์ผิดพลาด)
ส่งโดยgateway proxy หรือ CDN ที่อยู่หน้าเว็บไซต์เป้าหมาย
กำหนดไว้ในRFC 9110, section 15.6.5
ลองใหม่อีกครั้งไหม?ใช่ ครั้งหรือสองครั้งกับ exit ใหม่
ตรวจสอบก่อนจับเวลาคำขอเดียวกันโดยไม่ใช้ proxy

504 Gateway Timeout หมายความว่าอย่างไร?

RFC 9110 กำหนด 504 เป็น gateway ที่ไม่ได้รับการตอบกลับทันเวลาจากเซิร์ฟเวอร์ต้นทางที่ต้องการ มันคือ timeout คู่กับ 502: 502 คือคำตอบไม่ดี, 504 คือไม่มีคำตอบทันเวลา

proxy แบบ residential เพิ่มชั้นทางผ่านที่คำขอตรงไม่มี คือทราฟฟิกของคุณไปที่ gateway แล้วไปยังการเชื่อมต่อบ้าน จากนั้นไปยังเว็บไซต์แต่ละชั้นเพิ่มความล่าช้า โดยช้าที่สุดเป็นตัวตัดสินเวลาโดยรวม

a 504 เป็นอย่างไรใน Python, curl, Node.js และเบราว์เซอร์?

ข้อผิดพลาดเดียวกันนี้แสดงผลแตกต่างกันในแต่ละเครื่องมือ นี่คือข้อความที่ต้องค้นหาในบันทึกของคุณ:

  • Python requests: status_code == 504 หรือ Tunnel connection failed: 504 Gateway Timeout สำหรับเป้าหมาย HTTPS
  • curl: curl: (56) CONNECT tunnel failed, response 504
  • Scrapy: ลองใหม่โดยอัตโนมัติ (504 อยู่ใน RETRY_HTTP_CODES)
  • เว็บไซต์ที่ใช้ CDN: หน้า error จาก CDN พร้อมสถานะ 504

อะไรเป็นสาเหตุของ a 504?

โอกาสสูงสุดอันดับแรก:

  • เป้าหมายช้า เช่น หน้า search ที่ใช้เวลาหลายวินาที
  • exit ช้า เช่น การเชื่อมต่อบ้านอ่อนหรือเครือข่ายมือถือหนาแน่น
  • ตอบกลับขนาดใหญ่ ที่ใช้เวลานานกว่าความอดทนของ gateway
  • ต้นทางของเว็บไซต์เอง ที่ timeout หลัง CDN แล้วแสดง 504

ฉันวินิจฉัย a 504 ทีละขั้นตอนอย่างไร?

  1. จับเวลาคำขอโดยไม่ใช้ proxy ถ้าช้าที่บ้านเป้าหมายก็ช้า
  2. ลองใหม่ด้วย exit ใหม่และเปรียบเทียบเวลา
  3. ตรวจสอบขนาดตอบกลับ: หน้า 5 MB กับ 50 KB เป็นปัญหาคนละแบบ
  4. อ่านเนื้อหาเพื่อดูว่า error page มาจาก CDN หรือ proxy
ทดสอบ URL ที่ล้มเหลวด้วย curl (พอร์ต HTTP, โหมดละเอียด)
# 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

ฉันจะแก้ไข a 504 อย่างไร?

  • ตั้งเวลา timeout ชัดเจน: ประมาณ 10 วินาทีสำหรับการเชื่อมต่อ และ 30-60 วินาทีสำหรับการอ่านหน้า
  • ลองใหม่ด้วย exit ใหม่ ครั้งหรือสองครั้ง
  • ดึงข้อมูลน้อยลง เช่น ข้ามรูปหรือสื่อต่าง ๆ ถ้าต้องการแค่ HTML หรือ JSON API
  • วางแผนโหลดหนัก ในช่วงเวลาที่ไม่ใช่ชั่วโมงเร่งด่วนสำหรับประเทศเป้าหมาย
Python httpx: กำหนดเวลาเชื่อมต่อ, อ่าน, เขียน และพูลอย่างชัดเจน
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 ไหม?

ลองรีทรูปแบบ 504 สักหนึ่งหรือสองครั้งในครั้งแรกที่ออก โดยมีระยะเวลารอสั้น ๆ ถ้า URL เดิมหมดเวลาหลายครั้งในหลายจุดออก แสดงว่าเป้าหมายช้า หรือโหลดเกินความสามารถ: ลดอัตราของคุณบนโฮสต์นั้น หรือ ลองใหม่ภายหลัง การเพิ่มเวลารอของไคลเอนต์ช่วยได้ก็ต่อเมื่อเวลารอเกตเวย์ไม่ใช่ข้อจำกัด

504 Gateway Timeout มีผลอย่างไรกับ CrawlRelay?

การเชื่อมต่อใหม่แต่ละครั้งกับ CrawlRelay ที่ไม่มี session ID มักจะได้จุดออกแบบที่อยู่อาศัยที่ต่างกัน ดังนั้นการรีทรูปแบบจึงทดสอบการเชื่อมต่อบ้านใบใหม่ สำหรับเป้าหมายช้า ให้ payload เล็กและวัดเวลาถึงไบต์แรกแยกจากเวลาดาวน์โหลดทั้งหมด

เกตเวย์: gw.crawlrelay.com, พอร์ต 7777 (HTTP, HTTPS ผ่าน CONNECT) และพอร์ต 7778 (SOCKS5). รูปแบบชื่อผู้ใช้: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. ที่เกี่ยวข้อง: 502 Bad Gateway · Read timed out · 503 Service Unavailable.

504 Gateway Timeout: คำถามที่นักพัฒนาถาม

ความแตกต่างระหว่าง 502 กับ 504 คืออะไร?

ทั้งสองมาจากเกตเวย์ 502 หมายความว่าเซิร์ฟเวอร์เบื้องหลังส่งการตอบกลับไม่ถูกต้องหรือหลุดการเชื่อมต่อ 504 หมายความว่าไม่ได้ส่งอะไรมาในเวลาที่กำหนด สำหรับ residential proxy 502 มักหมายถึงจุดออกที่หลุด ส่วน 504 คือเป้าหมายช้าหรือการเชื่อมต่อบ้านช้า

ฉันจะเพิ่มเวลารอของ proxy ได้ไหม?

คุณควบคุมเวลารอไคลเอนต์ได้เอง ไม่ใช่เวลารอภายในของเกตเวย์ กำหนดเวลารอเชื่อมต่อและอ่านอย่างชัดเจน เพื่อให้คำร้องขอช้าเกิดข้อผิดพลาดทำนายได้ รีทรูปแบบที่จุดออกใหม่ และทำหน้าเว็บให้เบาลง ถ้าเป้าหมายต้องการเวลาตอบกลับนาน ให้ดึง API ของมันหรือหน้าที่เบากว่าแทน

proxy มือถือช้ากว่า proxy แบบบ้านหรือไม่?

เป็นได้ เพราะจุดออกมือถือแชร์เครือข่ายกับผู้ใช้รายอื่น ความเร็วเปลี่ยนตามสัญญาณและโหลด ใช้ IP มือถือสำหรับเป้าหมายที่ต้องการ และ IP ที่อยู่อาศัยสำหรับการเก็บข้อมูลจำนวนมาก วัดเวลาตอบสนองของคุณตามประเภทจุดออกก่อนตัดสินใจ

ข้อผิดพลาดพร็อกซีอื่นๆ ในเอกสารอ้างอิงนี้

รหัสสถานะ HTTP

ข้อผิดพลาดของเบราว์เซอร์และไคลเอนต์

ข้อผิดพลาดการเชื่อมต่อและ TLS

พร็อกซีเรซิเดนเชียลที่มีเอกสารอธิบายกรณีล้มเหลว

พร็อกซีเรซิเดนเชียล CrawlRelay จาก US$0.50/GB, ปริมาณข้อมูลที่ไม่หมดอายุ

จาก US$0.50/GB · ไม่ต้อง KYC

เริ่มต้นเลย