ข้อผิดพลาดพร็อกซี 502 Bad Gateway: วิธีตรวจสอบว่าต้นทางมาจากไหน

อัปเดตเมื่อ:

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

Private IP ส่วนตัว ไม่แชร์ร่วมกับผู้อื่น

ลักษณะของรหัส 502 ที่ส่งมาจากพร็อกซี

เราได้ทดสอบให้พร็อกซีตอบกลับด้วย 502 และบันทึกการตอบสนองเอาไว้ โดยจำลองเป็น 203.0.113.10:8080 และ user123:pass456:

  • เว็บไซต์ HTTPS: curl -x http://user123:[email protected]:8080 https://example.com จะแสดงข้อความ curl: (56) CONNECT tunnel failed, response 502
  • เว็บไซต์ HTTP ทั่วไป: curl จะได้รับสถานะ 502
  • เมื่อเปิดหน้า HTTPS ใน Chrome ผ่านพร็อกซีดังกล่าว จะแจ้งเตือน ERR_TUNNEL_CONNECTION_FAILED และไม่แสดงหน้าข้อผิดพลาด 502 แต่อย่างใด
  • เครื่องมือตรวจสอบพร็อกซี จะแสดง HTTP 502 ส่วนรหัสอื่นๆ จะแสดงในรูปแบบ HTTP <code> เช่นเดียวกัน

จุดสังเกต: หน้า 502 บนเว็บไซต์ HTTPS

สำหรับเว็บไซต์ HTTPS พร็อกซีทำหน้าที่เพียงเปิดอุโมงค์เชื่อมต่อ (Tunnel) เท่านั้น และไม่สามารถแทรกหน้าเว็บของตัวเองเข้าไปในการเชื่อมต่อที่เข้ารหัสได้ หากพร็อกซีปฏิเสธการเชื่อมต่อ Chrome จะรายงานข้อผิดพลาด ERR_TUNNEL_CONNECTION_FAILED ดังนั้น เมื่อคุณเห็นหน้าเว็บ "502 Bad Gateway" เต็มหน้าบนที่อยู่ https:// จึงแทบจะแน่นอนว่ามาจากเซิร์ฟเวอร์ของเว็บไซต์ ไม่ใช่จากพร็อกซี

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

กรณีที่พร็อกซีเป็นผู้ส่ง 502 จริงๆ

  • ปลายทางไม่ตอบรับพร็อกซี เว็บไซต์อาจล่ม ใช้งานหนักเกินไป หรือปฏิเสธการเชื่อมต่อจากช่วง IP ของพร็อกซี
  • พิมพ์โดเมนผิดหรือไม่สามารถแปลงโดเมนได้ พร็อกซีไม่พบที่อยู่ของเว็บไซต์ จึงไม่มีปลายทางที่จะส่งต่อคำขอ
  • พอร์ตปลายทางปิดอยู่ คำขอถูกส่งไปยังพอร์ตที่เว็บไซต์ไม่ได้เปิดให้บริการ
  • ข้อผิดพลาดชั่วคราวฝั่งพร็อกซี พบน้อยกว่า โดยจะสังเกตได้เมื่อทุกเว็บไซต์ขึ้น 502 ผ่านพร็อกซีนี้ แต่สามารถใช้งานได้ปกติผ่านพร็อกซีอื่น

แนวทางแก้ไขในแต่ละสภาพแวดล้อม

  • Chrome หรือโปรไฟล์ Antidetect: ลองเปิดเว็บไซต์ขนาดใหญ่อื่นๆ ในโปรไฟล์เดิม หากโหลดได้แสดงว่าพร็อกซีปกติดี และปัญหาอยู่ที่เว็บไซต์เดิม
  • โทรศัพท์มือถือ: ปิดพร็อกซีใน Wi-Fi แล้วลองเปิดหน้าเว็บผ่านอินเทอร์เน็ตมือถือ เพื่อดูว่าเว็บไซต์มีปัญหาสำหรับทุกคนหรือไม่
  • curl: เพิ่มแฟล็ก -v เพื่อดูว่า 502 ตอบกลับมาทันทีหลังคำสั่ง CONNECT หรือไม่ จากนั้นลองทดสอบกับโดเมนอื่นเพื่อจำกัดขอบเขตปัญหา
  • Python requests: สำหรับหน้า HTTP ให้ตรวจสอบ response.status_code == 502 แล้วหน่วงเวลาก่อนลองใหม่อีกครั้ง สำหรับหน้า HTTPS กรณีที่สร้างอุโมงค์เชื่อมต่อไม่สำเร็จจะแจ้งเตือนเป็น requests.exceptions.ProxyError ควรเว้นระยะห่างในการลองใหม่แทนการส่งคำขอถี่ๆ ไปยังเว็บไซต์

ขั้นตอนทีละขั้น

  1. 1

    สังเกตจุดที่รหัส 502 ปรากฏ

    หน้า 502 บนที่อยู่ https บ่งชี้ว่าเกิดจากเว็บไซต์ ส่วนข้อผิดพลาดเกี่ยวกับอุโมงค์เชื่อมต่อใน Chrome บ่งชี้ว่าเกิดจากเส้นทางพร็อกซี

  2. 2

    ปิดพร็อกซีแล้วโหลดหน้าเว็บใหม่อีกครั้ง

    หากขึ้น 502 แม้ไม่ได้เปิดพร็อกซี แสดงว่าเป็นปัญหาที่ตัวเว็บไซต์เอง

  3. 3

    ลองเปิดเว็บไซต์อื่นผ่านพร็อกซีเดิม

    หากเว็บไซต์อื่นเปิดได้ แสดงว่าพร็อกซีปกติดี มีเพียงเว็บไซต์เดิมที่ปฏิเสธการเชื่อมต่อหรือระบบล่ม

  4. 4

    ตรวจสอบพร็อกซีด้วยเครื่องมือตรวจสอบ

    วางข้อมูลพร็อกซีลงใน เครื่องมือตรวจสอบพร็อกซี หากทุกเว็บไซต์ตอบกลับเป็น HTTP 502 ให้เปิดทิกเก็ตแจ้งปัญหาพร้อมแนบผลการตรวจสอบ

คำถามที่พบบ่อย

รหัส 502 หมายความว่าพร็อกซีของฉันหมดอายุหรือไม่?

โดยทั่วไปไม่ใช่ พร็อกซีที่หมดอายุหรือหยุดทำงานมักจะเกิดข้อผิดพลาดในการเชื่อมต่อหรือหมดเวลาเชื่อมต่อ ดูเพิ่มเติมที่ proxy timeout

ทำไมมีเพียงเว็บไซต์เดียวที่ส่งรหัส 502 ผ่านพร็อกซี?

เว็บไซต์นั้นอาจกำลังมีปัญหาหรือไม่ตอบสนองการเชื่อมต่อจาก IP ของพร็อกซี ลองใหม่อีกครั้งในภายหลัง หรือเปลี่ยนไปใช้ IP จากประเทศอื่น

502 กับ 504 ต่างกันอย่างไร?

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

โปรแกรม Scraper ได้รับรหัส 502 เป็นระยะ ควรเปลี่ยนพร็อกซีหรือไม่?

การได้รับ 502 เป็นระยะๆ มักเกิดจากเซิร์ฟเวอร์ปลายทางรับโหลดหนักเกินไป ให้ลดความถี่ในการส่งคำขอและเว้นระยะก่อนลองใหม่อีกครั้งก่อนที่จะเปลี่ยนพร็อกซี ดูเพิ่มเติมที่ proxies for web scraping

Private IP ส่วนตัว ไม่แชร์ร่วมกับผู้อื่น

พร็อกซีส่วนตัวจาก VinaProxy ช่วยป้องกันไม่ให้ IP ถูกบล็อกจากการใช้งานของคนอื่น

ดูราคาแพ็กเกจ

บทความที่เกี่ยวข้อง

ข้อผิดพลาดของพร็อกซี
วิธีแก้ไข ERR_TUNNEL_CONNECTION_FAILED เมื่อใช้งานผ่านพร็อกซี
ERR_TUNNEL_CONNECTION_FAILED หมายถึง Chrome เชื่อมต่อไปยังพร็อกซีได้แต่ไม่สามารถเปิดอุโมงค์ HTTPS ได้ ดูวิธีตรวจสอบโค้ด CONNECT และวิธีแก้ไขใน Chrome, Puppeteer, Android
ข้อผิดพลาดของพร็อกซี
ข้อผิดพลาด Proxy timeout: การเชื่อมต่อค้างแล้วหลุด
Proxy timeout หมายถึงไม่มีการตอบกลับภายในระยะเวลาที่กำหนด ทำความเข้าใจความแตกต่างระหว่าง curl (28) กับ ERR_TIMED_OUT ปรับค่า timeout ใน Python และค้นหาจุดที่ทราฟฟิกถูกบล็อก
เครื่องมือฟรี
เช็กพร็อกซี: ตรวจสอบพร็อกซีของคุณออนไลน์
เครื่องมือเช็กพร็อกซีฟรี: วางพร็อกซีได้สูงสุด 100 ตัวในรูปแบบ ip:port:user:pass แล้วตรวจสอบสถานะ IP ขาออก และความหน่วงออนไลน์ พร้อมคำอธิบายข้อผิดพลาดแต่ละแบบ
วิธีตั้งค่าพร็อกซี
วิธีใช้งานพร็อกซีใน cURL (ไวยากรณ์คำสั่งและการตรวจสอบข้อผิดพลาด)
วิธีใช้งาน curl ร่วมกับ HTTP(S) proxy ที่ต้องยืนยันตัวตน (-x http://user:pass@ip:port และ -U) บน Linux, macOS และ Windows
พร็อกซีตามแพลตฟอร์ม
พร็อกซีสำหรับ Web Scraping: พูล IPv4 และ ISP แบบเฉพาะไม่จำกัด สำหรับบอทดูดข้อมูล 24/7
พร็อกซี HTTP(S) IPv4 แบบเฉพาะและ ISP แบบคงที่ความเร็วสูงสำหรับ Python, Playwright, Selenium และ Scrapy พร้อมแบนด์วิดท์รายเดือนไม่จำกัด
วิธีตั้งค่าพร็อกซี
คู่มือการกำหนดค่า Proxy ใน Google Chrome
กำหนดค่า VinaProxy HTTP(S) บน Google Chrome โดยไม่ต้องเปลี่ยน IP ของระบบปฏิบัติการทั้งเครื่อง โดยใช้ส่วนขยาย Chrome, แฟล็ก --proxy-server หรือโปรไฟล์แยกต่างหาก
วิธีตั้งค่าพร็อกซี
วิธีกำหนดค่าพร็อกซีบน Windows 10 & Windows 11
กำหนดค่าพร็อกซี HTTP(S) ของ VinaProxy บน Windows 10 และ Windows 11 โดยใช้การตั้งค่าระบบ WinINET, ตัวแปรสภาพแวดล้อม PowerShell หรือ netsh winhttp
วิธีตั้งค่าพร็อกซี
วิธีตั้งค่าพร็อกซีใน GenLogin (โปรไฟล์เดี่ยวและการนำเข้าจำนวนมาก)
กำหนดค่าพร็อกซี HTTP ip:port:user:pass ในเบราว์เซอร์กันตรวจจับ GenLogin ซิงค์โซนเวลา WebRTC และแก้ปัญหาการเชื่อมต่อโปรไฟล์