# 502 Bad Gateway ผ่านพร็อกซี: ความหมายและวิธีแก้ไข

> 502 Bad Gateway ผ่านพร็อกซี residential หมายถึงเกตเวย์ไม่ได้รับคำตอบที่ถูกต้องจากเซิร์ฟเวอร์ต้นทาง สาเหตุ วิธีแยกพร็อกซีออกจากเป้าหมาย โค้ดลองใหม่

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

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

**คำตอบด่วน — 502 Bad Gateway หมายความว่าอย่างไรกับพร็อกซี?**

**502 Bad Gateway** หมายถึงเกตเวย์หรือพร็อกซีได้รับคำตอบไม่ถูกต้อง หรือไม่มีเลย จากเซิร์ฟเวอร์ถัดไปในเส้นทาง ผ่านพร็อกซี residential ของ CrawlRelay โดยทั่วไป 502 หมายถึงการเชื่อมต่อ exit หรือตัวเป้าหมายล้มเหลวก่อนเสร็จคำขอ ลองใหม่หนึ่งครั้งบนการเชื่อมต่อใหม่ หาก 502 ยังเกิดขึ้นที่ไซต์เดียว แสดงว่าเป็นปัญหาไซต์ ถ้าเกิดกับทุกไซต์ ให้ตรวจสอบการตั้งค่าของคุณ

## 502 Bad Gateway แบบสั้นๆ

| คุณลักษณะ | ค่า |
| --- | --- |
| ข้อผิดพลาด | 502 Bad Gateway |
| ประเภท | รหัสสถานะ HTTP (5xx, เซิร์ฟเวอร์ผิดพลาด) |
| ส่งโดย | เกตเวย์พร็อกซีหรือพร็อกซีย้อนกลับหน้าปลายทาง |
| กำหนดไว้ใน | RFC 9110, section 15.6.3 |
| ลองใหม่อีกครั้งไหม? | ใช่ เมื่อเชื่อมหรือเซสชันใหม่ |
| ตรวจสอบก่อน | ลองใหม่หนึ่งครั้งบน IP ใหม่ หากยังเกิดขึ้น ทดสอบเป้าหมายโดยไม่ใช้พร็อกซี |

## 502 Bad Gateway หมายความว่าอย่างไร?

RFC 9110 บรรยาย 502 ว่าเป็นวิธีของเกตเวย์ในการบอกว่าเซิร์ฟเวอร์ตอบไม่ดี ในเส้นสแครปมีอย่างน้อยสองเกตเวย์: พร็อกซี และมักเป็น CDN หรือ load balancer หน้าเว็บไซต์ อย่างใดอย่างหนึ่งอาจสร้าง 502 และเนื้อหาการตอบกลับมักบอกว่าอันไหน

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

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

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

- **Python requests:** `status_code == 502` หรือ `ProxyError('Unable to connect to proxy', OSError('Tunnel connection failed: 502 Bad Gateway'))` สำหรับเป้าหมาย HTTPS
- **curl:** `curl: (56) CONNECT tunnel failed, response 502`
- **เบราว์เซอร์:** `net::ERR_TUNNEL_CONNECTION_FAILED` สำหรับ HTTPS หรือหน้าแสดงข้อผิดพลาดปกติ HTTP
- **Scrapy:** ลองใหม่อัตโนมัติ เพราะ 502 อยู่ใน `RETRY_HTTP_CODES`

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

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

- **exit ออกจากกลุ่มขณะกำลังส่งคำขอ** เกิดขึ้นในเครือข่าย residential ทุกแห่ง
- **เป้าหมายปิดการเชื่อมต่อ** ล่ม หรือส่งข้อมูลผิดรูปแบบ
- **CDN ของเป้าหมายล้มเหลว** เข้าถึงเซิร์ฟเวอร์ต้นทางไม่สำเร็จ
- **DNS ผิดพลาดสำหรับเป้าหมายที่ exit** เช่น พิมพ์ชื่อโฮสต์ผิด
- **การกำหนดเป้าหมายที่แคบมาก** มี exit น้อยเกินไป ทำให้เกิดข้อผิดพลาดซ้ำที่กลุ่มเล็กเดียวกัน

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

1. ลองใหม่คำขอบนการเชื่อมต่อใหม่ 502 ครั้งเดียวที่หายไปคือ exit หลุด
2. อ่านเนื้อหาและ header ตอบกลับ หน้า error ของ CDN จะบอกชื่อ CDN; ข้อความพร็อกซีสั้นบอกเกตเวย์
3. ทดสอบเป้าหมายจากการเชื่อมต่อของคุณเองโดยไม่ใช้พร็อกซี
4. ขยายเป้าหมายจากเมืองไปประเทศและเปรียบเทียบอัตราความล้มเหลว

*ทดสอบ 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 502 อย่างไร?

- **ลองใหม่ด้วย session ID ใหม่** หรือไม่ใช้เลย เพื่อให้ออกจากทาง exit อื่น
- **ตั้ง timeout ที่เหมาะสม** เพื่อให้ exit ที่ล้มหรือไม่ตอบล้มเหลวเร็ว ไม่ค้าง
- **บันทึก 502 ต่อโฮสต์** และหยุดโฮสต์ที่อัตรา 502 พุ่งสูง: อาจล่ม

*Python: ลองใหม่ด้วย Retry-After, การหน่วงเพิ่มขึ้นแบบเอ็กซ์โพเนนเชียล และ jitter*

```python
import random
import time

import requests

PROXY = "http://USERNAME:PASSWORD@gw.crawlrelay.com:7777"
PROXIES = {"http": PROXY, "https": PROXY}
RETRY_STATUSES = {429, 502, 503, 504}


def fetch(url, attempts=5, timeout=(10, 30)):
    for attempt in range(attempts):
        try:
            r = requests.get(url, proxies=PROXIES, timeout=timeout)
        except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
            r = None  # dropped exit, reset or timeout: a new connection gets a new exit
        if r is not None and r.status_code not in RETRY_STATUSES:
            return r
        retry_after = r.headers.get("Retry-After", "") if r is not None else ""
        if retry_after.isdigit():
            wait = int(retry_after)
        else:
            wait = min(60, 2 ** attempt) + random.uniform(0, 1)
        time.sleep(wait)
    raise RuntimeError("giving up on %s after %d attempts" % (url, attempts))
```

## ฉันควรลองใหม่หลังจาก a 502 ไหม?

ใช่ ลอง 502 ใหม่ แต่เปลี่ยน exit และจำกัดจำนวน ลอง 2-3 ครั้งพร้อมหน่วงเวลาสั้นๆ ก็พอแล้ว 502 ที่ยังเกิดกับหลาย exit หมายถึงปัญหาเป้าหมาย และการลองใหม่มากกว่านี้ไม่ช่วย ให้ติดตามอัตราต่อโฮสต์เพื่อไม่ให้ไซต์ล่มตัวเดียวเต็มคิวลองใหม่ของคุณ

## 502 Bad Gateway มีผลอย่างไรกับ CrawlRelay?

กับ CrawlRelay ละทิ้งหรือสร้าง session ID ใหม่เพื่อให้ออกทาง residential IP ต่างกัน เซสชันคงที่ผูกคุณกับ exit เดียว ดังนั้น 502 ในเซสชันคงที่ควรจบเซสชันนั้นในโค้ดของคุณ [คำแนะนำเซสชัน](https://crawlrelay.com/th/docs/sessions/) อธิบายวิธีหมุนเซสชันอย่างสะอาด

เกตเวย์: `gw.crawlrelay.com`, พอร์ต 7777 (HTTP, HTTPS ผ่าน CONNECT) และพอร์ต 7778 (SOCKS5). รูปแบบชื่อผู้ใช้: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. ที่เกี่ยวข้อง: [504 Gateway Timeout](https://crawlrelay.com/th/docs/errors/504-gateway-timeout/) · [Connection reset](https://crawlrelay.com/th/docs/errors/connection-reset/) · [503 Service Unavailable](https://crawlrelay.com/th/docs/errors/503-service-unavailable/).

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

### 502 เป็นความผิดของ proxy หรือเว็บไซต์กันแน่?

ทั้งสองอย่าง อ่านข้อมูลในส่วนของเนื้อหาตอบกลับ: หน้า error ของ CDN จะระบุชื่อ CDN ที่ชี้ไปยังเว็บไซต์ 502 ที่เกิดขึ้นกับทุกเว็บไซต์ที่คุณลอง แสดงว่าเป็นปัญหาของ proxy หรือการตั้งค่าของคุณ ในขณะที่ 502 ที่เกิดกับเว็บไซต์เดียวแสดงว่าเป็นที่เว็บไซต์นั้น ทดสอบ URL เดิมโดยไม่ใช้ proxy เพื่อความแน่ใจ

### ทำไมข้อผิดพลาด 502 ถึงพบได้บ่อยกับ residential proxy?

Residential exit คือการเชื่อมต่อจากบ้านจริง ๆ ซึ่งอุปกรณ์อาจออฟไลน์ เปลี่ยนเครือข่าย หรือสัญญาณหายไป คำขอที่อยู่ระหว่างส่งเมื่อเหตุการณ์เหล่านี้เกิดขึ้นจะจบด้วย 502 หรือ reset ตัว scraper ที่ดีควรถือว่าเป็นเรื่องปกติและลองใหม่ด้วย exit ใหม่ โดยตั้งขีดจำกัดเล็กน้อย

### ควรเปลี่ยนไปใช้ sticky sessions เพื่อลด 502 หรือไม่?

ไม่ใช่ Sticky session จะทำให้คุณใช้ทางออกเดียว ถ้าทางออกนั้นล้มเหลว คำขอทั้งหมดใน session นั้นก็จะล้มเหลวตาม ใช้การเชื่อมต่อแบบหมุนเวียนสำหรับหน้าเว็บอิสระ และ sticky session สำหรับขั้นตอนหลายชั้นเท่านั้น จบ sticky session หลังเกิด 502 แล้วเริ่มใหม่

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

- [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 — ไม่ต้องใช้บัตรประชาชน ไม่ต้องถ่ายเซลฟี่ ไม่ต้องใช้เอกสาร จ่ายด้วยคริปโต
