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

> 504 Gateway Timeout หมายความว่า gateway รอนานเกินไปสำหรับเซิร์ฟเวอร์เบื้องหลัง สาเหตุเกี่ยวกับ residential proxy การตั้งเวลา timeout และคำแนะนำการลองใหม่

- URL: https://crawlrelay.com/th/docs/errors/504-gateway-timeout/
- อัปเดตล่าสุด: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

รหัสสถานะ 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, โหมดละเอียด)*

```bash
# 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:PASSWORD@gw.crawlrelay.com: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: กำหนดเวลาเชื่อมต่อ, อ่าน, เขียน และพูลอย่างชัดเจน*

```python
import httpx

proxy = "http://USERNAME:PASSWORD@gw.crawlrelay.com: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](https://crawlrelay.com/th/docs/errors/502-bad-gateway/) · [Read timed out](https://crawlrelay.com/th/docs/errors/read-timeout/) · [503 Service Unavailable](https://crawlrelay.com/th/docs/errors/503-service-unavailable/).

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

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

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

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

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

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

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

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

- [401 Unauthorized vs 407](https://crawlrelay.com/th/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/th/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/th/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/th/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/th/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/th/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/th/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/th/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/th/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/th/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/th/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/th/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/th/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/th/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/th/docs/errors/ssl-wrong-version-number/)

**พร็อกซีเรซิเดนเชียลที่มีเอกสารอธิบายกรณีล้มเหลว** พร็อกซีเรซิเดนเชียล CrawlRelay จาก US$0.50/GB, ปริมาณข้อมูลที่ไม่หมดอายุ [ดูราคา](https://crawlrelay.com/th/pricing/) · [เริ่มต้นอย่างรวดเร็ว](https://crawlrelay.com/th/docs/)

---

CrawlRelay: CrawlRelay คือพร็อกซีเรซิเดนเชียลหมุนเวียนพร้อมพร็อกซีมือถือ 4G/5G สำหรับนักพัฒนา เหมาะกับสแครปเปอร์และระบบจัดการข้อมูล AI: เติมเงินจ่ายตามการใช้งานจาก US$0.50/GB จ่ายด้วยคริปโต ไม่ต้องอัปโหลดบัตรประชาชน ไม่ต้อง KYC — ไม่ต้องใช้บัตรประชาชน ไม่ต้องถ่ายเซลฟี่ ไม่ต้องใช้เอกสาร จ่ายด้วยคริปโต
