ในฐานะผู้เยี่ยมชมหรือเจ้าของเว็บไซต์ การเห็นข้อผิดพลาด 502 Bad Gateway อาจทำให้งงเนื่องจากปัญหาเฉพาะไม่ชัดเจน นี่คือรหัสสถานะ HTTP ทั่วไปที่ได้รับความนิยม สมมติว่าการเชื่อมต่ออินเทอร์เน็ตของคุณใช้ได้ การเห็นข้อความนี้หมายความว่ามีแนวโน้มสูงที่จะเกิดปัญหาการสื่อสารกับเซิร์ฟเวอร์ และผลลัพธ์ก็คือคุณไม่เห็นหน้าเว็บที่คุณร้องขอ
แม้ว่าข้อผิดพลาด 502 มักจะเป็นปัญหาทางฝั่งเซิร์ฟเวอร์ แต่สาเหตุอาจอยู่ที่ฝั่งไคลเอ็นต์ในบางครั้ง ในบทความนี้ เราจะช่วยคุณไขปริศนานี้โดยลองใช้เคล็ดลับง่ายๆ ฝั่งไคลเอ็นต์ คุณจะเคลียร์ปัญหาหรือทำความเข้าใจสาเหตุมากขึ้น
502 ความหมายเกตเวย์ที่ไม่ดี
เมื่อใดก็ตามที่คุณพยายามเข้าถึงหน้าเว็บ เบราว์เซอร์ของคุณจะขอให้เว็บเซิร์ฟเวอร์เข้าถึงหน้าเว็บโดยพื้นฐาน จากนั้นเว็บเซิร์ฟเวอร์จะประมวลผลคำขอของคุณและส่งคืนทรัพยากรที่คุณขอพร้อมกับส่วนหัว HTTP และรหัสสถานะ HTTP
แต่ถ้ามีปัญหาเซิร์ฟเวอร์ คุณอาจได้รับรหัสข้อผิดพลาด 500 รหัสที่แตกต่างกันหลายรหัส ทั้งหมดระบุว่ามีปัญหากับเซิร์ฟเวอร์ ดังนั้นข้อผิดพลาด 502 Bad Gateway – คำขอจากลูกค้า (เบราว์เซอร์ของคุณ) – ดี แต่เซิร์ฟเวอร์ไม่สามารถส่งคืนทรัพยากรที่ขอได้
502 การแก้ไขเกตเวย์ที่ไม่ดี
ต่อไปนี้คือเคล็ดลับบางประการที่คุณสามารถลองใช้จากเว็บเบราว์เซอร์เพื่อล้างข้อผิดพลาด 502 Bad Gateway และทำให้หน้าเว็บของคุณปรากฏขึ้น
1. ลองโหลดหน้าซ้ำ
ข้อผิดพลาดอาจเกิดจากความผิดพลาดของเซิร์ฟเวอร์เมื่อเทียบกับการหยุดทำงาน และปัญหาการเชื่อมต่อเซิร์ฟเวอร์สามารถแก้ไขได้อย่างรวดเร็วในกรณีส่วนใหญ่
เริ่มต้นด้วยการโหลดหน้าใหม่ – คลิกที่ลูกศรวงกลมใกล้กับแถบที่อยู่ URL ใน Chrome และ Safari อยู่ทางซ้าย ใน Firefox จะอยู่ทางขวา รอสักครู่ก่อนที่จะโหลดหน้าซ้ำ หากหน้าเว็บปรากฏขึ้น แสดงว่าปัญหาหายไป
อีกวิธีหนึ่งที่คุณสามารถลองได้คือเปิดเซสชันเบราว์เซอร์ใหม่ ปิดหน้าต่างเบราว์เซอร์ที่เปิดอยู่ทั้งหมด จากนั้นเปิดหน้าต่างใหม่และลองไปที่หน้าเว็บอีกครั้ง
วิธีบันทึกใน snapchat โดยไม่ต้องกดปุ่มค้างไว้
2. ลองล้างแคชเบราว์เซอร์ของคุณ
เว็บเบราว์เซอร์ของคุณบันทึกข้อมูลจากแต่ละเว็บไซต์ที่คุณเยี่ยมชมในแคชของเบราว์เซอร์ เมื่อใดก็ตามที่คุณเยี่ยมชมเว็บไซต์อีกครั้ง หน้าจะโหลดเร็วขึ้นเนื่องจากเบราว์เซอร์ของคุณใช้สิ่งที่จัดเก็บไว้ในแคช
อย่างไรก็ตาม การตั้งค่านี้ไม่ใช่สิ่งที่ดีเสมอไป หากแคชของเบราว์เซอร์ของคุณมีเว็บไซต์ที่ล้าสมัยหรือเสียหาย อาจทำให้เกิดข้อผิดพลาด 502 ลองล้างแคชของเบราว์เซอร์เพื่อรับเวอร์ชันล่าสุดของหน้าเว็บที่คุณพยายามจะเข้าถึง นี่คือวิธีการ:
โครเมียม
- ในหน้าต่างเบราว์เซอร์ Chrome ให้คลิกที่เมนูสามจุดที่ด้านบนขวา
- เลือกตัวเลือกเครื่องมือเพิ่มเติม
- เลือกล้างข้อมูลการท่องเว็บ…
- ในป๊อปอัปล้างข้อมูลการท่องเว็บ ให้ตรวจสอบว่าได้เลือกตัวเลือกรูปภาพและไฟล์ที่แคชไว้เท่านั้น กำหนดช่วงเวลา จากนั้นจึงล้างข้อมูล
Firefox
- ในหน้าต่างเบราว์เซอร์ Firefox ให้คลิกไอคอนแฮมเบอร์เกอร์ที่ด้านบนขวา
- คลิกประวัติ
- เลือก ล้างประวัติล่าสุด…
- ในป๊อปอัป ที่ช่วงเวลาเพื่อล้างรายการแบบเลื่อนลง ให้เลือกทุกอย่าง
- ตรวจสอบให้แน่ใจว่าได้เลือกช่อง Cache เท่านั้น จากนั้น ล้างทันที
ซาฟารี
ในการล้างแคชในเบราว์เซอร์ Safari ของคุณ เมนู Develop จำเป็นต้องเปิดใช้งาน เพื่อทำสิ่งนี้:
- ไปที่การตั้งค่าแล้วขั้นสูง
- ทำเครื่องหมายที่ช่องแสดงเมนูพัฒนาในแถบเมนู
- ไปที่พัฒนาแล้วล้างแคช
502 เกตเวย์ไม่ถูกต้องใน NGINX
PHP-FastCGI Process Manager (PHP-FPM) เป็นกระบวนการพื้นหลังสำหรับจัดการคำขอเว็บเซิร์ฟเวอร์สำหรับแอป PHP NGINX ส่งคำขอเว็บไปยังกระบวนการของผู้ปฏิบัติงาน PHP-FPM ที่เรียกใช้งานแอปพลิเคชัน PHP NGINX ส่งคืนข้อผิดพลาด 502 Bad Gateway เมื่อไม่สามารถมอบหมายคำขอไปยัง PHP-FPM ได้สำเร็จ หรือหาก PHP-FPM ไม่ตอบสนอง
ต่อไปนี้คือสาเหตุที่พบบ่อยที่สุดสำหรับ NGINX ที่ส่งคืนข้อผิดพลาด 502:
- PHP-FPM ไม่ทำงาน
- NGINX ไม่สามารถสื่อสารกับ PHP-FPM
- PHP-FPM หมดเวลา
ตอนนี้เรามาดูวิธีการยืนยันว่าปัญหาข้างต้นเป็นปัญหาหรือไม่และจะแก้ไขอย่างไร
1. ตรวจสอบว่า PHP-FPM กำลังทำงานอยู่หรือไม่
เมื่อ PHP-FPM ไม่ทำงาน NGINX จะส่งคืนข้อผิดพลาด 502 ไปยังคำขอทั้งหมดที่มีจุดประสงค์เพื่อเข้าถึงแอปพลิเคชัน PHP คุณสามารถใช้คำสั่ง ps ผ่านโฮสต์ Linux เพื่อตรวจสอบการรันกระบวนการ PHP-FPM คำสั่งคือ:
|_+_|.
หากผลลัพธ์จากคำสั่งนี้ไม่แสดงพูล PHP-FPM หรือกระบวนการหลัก จะต้องเรียกใช้ PHP-FPM เพื่อแก้ไขข้อผิดพลาด 502 เพื่อให้แอป PHP ของคุณมีความน่าเชื่อถือมากขึ้น ให้พิจารณาใช้ systemd เพื่อจัดการ PHP-FPM เป็นบริการในสภาพแวดล้อมที่ใช้งานจริงของคุณ กระบวนการพื้นหลังของ PHP-FPM จะเริ่มให้บริการแอป PHP ของคุณโดยอัตโนมัติเมื่อใดก็ตามที่อินสแตนซ์ใหม่เปิดขึ้น หรือเซิร์ฟเวอร์ของคุณเริ่มทำงาน
เนื่องจาก PHP-FPM มีอยู่ในโค้ด PHP คุณจึงเพิ่มเป็นบริการ systemd ได้เมื่อคุณตั้งค่า PHP เมื่อโปรเจ็กต์ได้รับการตั้งค่าเป็นบริการแล้ว ให้ใช้คำสั่งนี้เพื่อเริ่มต้นโดยอัตโนมัติ:
|_+_|.
2. ตรวจสอบว่า NGINX มีสิทธิ์เข้าถึง Socket . หรือไม่
เมื่อ PHP-FPM เริ่มทำงาน จะสร้างซ็อกเก็ต Unix หรือ TCP เพื่อเชื่อมต่อกับเว็บเซิร์ฟเวอร์ NGINX กระบวนการของผู้ปฏิบัติงาน PHP-FPM ต้องการซ็อกเก็ตเพื่อรับฟังคำขอ NGINX ตรวจสอบให้แน่ใจว่าได้ตั้งค่า PHP-FPM และ NGINX ให้ใช้ซ็อกเก็ตเดียวกัน
PHP-FPM ใช้ไฟล์กำหนดค่าที่แตกต่างกันต่อกลุ่มกระบวนการ หากต้องการค้นหาไฟล์เหล่านี้ ให้ไปที่:
|_+_|.
ซ็อกเก็ตพูลมีการระบุไว้ในคำสั่งฟังในไฟล์ปรับแต่ง เช่น คำสั่งฟังต่อไปนี้กำหนดค่าพูลชื่อ mypool เพื่อใช้ซ็อกเก็ต Unix ที่: /run/php/mypool.sock :
|_+_|.
หาก NGINX ไม่สามารถเข้าถึงซ็อกเก็ตของพูล คุณสามารถค้นหาพูลของผู้ปฏิบัติงานได้ โดยตรวจสอบว่าซ็อกเก็ตใดระบุไว้ในบันทึกข้อผิดพลาด NGINX ตัวอย่างเช่น หาก PHP-FPM ไม่ได้เริ่มกลุ่มผู้ปฏิบัติงาน mypool NGINX จะส่งข้อผิดพลาด 502 และรายการบันทึกจะมีลักษณะดังนี้:
|_+_|() ถึง unix: :/run/php/mypool.sock ล้มเหลว (2: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)
วิธีปลดบล็อกการดาวน์โหลด Chrome
3. ตรวจสอบว่า PHP-FPM หมดเวลาหรือไม่
เมื่อแอปพลิเคชันของคุณใช้เวลาในการตอบสนองนานเกินไป ผู้ใช้จะได้รับข้อผิดพลาดการหมดเวลา หากการหมดเวลาของ PHP-FPM - แก้ไขในคำสั่งการกำหนดค่าของพูล (request_terminate_timeout) - น้อยกว่าการหมดเวลาของ NGINX NGINX จะส่งคืนข้อผิดพลาด 502
คุณสามารถเพิ่มการตั้งค่าการหมดเวลาของ PHP-FPM ในไฟล์การกำหนดค่าของพูล อย่างไรก็ตาม นี่อาจทำให้เกิดปัญหาอื่น: NGINX อาจหมดเวลาก่อนที่จะได้รับการตอบกลับจาก PHP-FPM
ระยะหมดเวลาเริ่มต้นของ NGINX คือ 60 วินาที หากคุณเพิ่มระยะหมดเวลาของ PHP-FPM เกิน 60 วินาที และแอป PHP ของคุณไม่มีเวลาตอบสนอง NGINX จะออกข้อผิดพลาด 504 เกตเวย์หมดเวลา หลีกเลี่ยงสิ่งนี้โดยเพิ่มการตั้งค่าการหมดเวลา NGINX ของคุณ
502 Bad Gateway ใน Cloudflare
Cloudflare จะส่งคืนข้อผิดพลาด 502 เมื่อไม่สามารถเริ่มการเชื่อมต่อที่ถูกต้องกับเว็บเซิร์ฟเวอร์ต้นทางของเว็บไซต์ของคุณ หรือหากบริการ Cloudflare ไม่พร้อมใช้งานหรือกำหนดค่าไม่ถูกต้อง สาเหตุที่พบบ่อยที่สุด ได้แก่:
- เซิร์ฟเวอร์ต้นทางทำงานหนักเกินไปโดยมีเซิร์ฟเวอร์โหลดมากเกินไปซึ่งทำให้เซิร์ฟเวอร์หยุดทำงาน
- เว็บไซต์ WordPress ที่มีขีด จำกัด หน่วยความจำ PHP ต่ำหรือมีการเชื่อมต่อ MYSQL มากเกินไปอาจทำให้เซิร์ฟเวอร์โหลดช้า
- ระเบียน DNS ไม่ถูกต้อง ปลั๊กอินหรือชุดรูปแบบขัดแย้งกันใน WordPress และความล้มเหลวของบริการเช่น PHP-FPM และบริการแคช
ลองใช้คำแนะนำต่อไปนี้เพื่อแก้ไขข้อผิดพลาด 502 Bad Gateway จาก Cloudflare:
1. โหลดหน้าใหม่และล้างแคชของคุณ
การโหลดหน้าเว็บใหม่ควรเป็นสิ่งแรกที่คุณลองสำหรับข้อความแสดงข้อผิดพลาด ข้อผิดพลาด 502 โดยเฉพาะอาจเป็นผลมาจากการโอเวอร์โหลดเซิร์ฟเวอร์ทำให้เกิดปัญหาการเชื่อมต่อชั่วคราว รอสักครู่ก่อนที่จะโหลดหน้าซ้ำ นี้มักจะแก้ปัญหาได้
หากข้อผิดพลาด 502 ยังคงปรากฏขึ้น ให้ล้างแคชของเบราว์เซอร์แล้วลองอีกครั้ง กด Ctrl + F5 ค้างไว้สำหรับเบราว์เซอร์ Windows และ Linux สำหรับ Chrome และ Safari บน Mac คือ Cmd + Shift + R
2. ตรวจสอบปลั๊กอิน/ธีมของคุณเพื่อหาข้อขัดแย้ง
หากคุณใช้ WordPress ข้อผิดพลาด 502 อาจเกิดจากปลั๊กอินที่กำหนดค่าไม่ถูกต้อง ในการแก้ไขปัญหาว่าเป็นสาเหตุหรือไม่ ให้ปิดใช้งานปลั๊กอินของคุณ ข้อมูลจะไม่สูญหาย
- ลงชื่อเข้าใช้บัญชี WordPress ของคุณ
- เลือกปลั๊กอินจากแถบด้านข้าง
- ใช้การปิดใช้งานกับปลั๊กอินทั้งหมดของคุณ
หากข้อผิดพลาด 502 ได้รับการแก้ไข คุณจะต้องค้นหาว่าปลั๊กอินตัวใดที่เป็นปัญหา ในการดำเนินการนี้ ให้เปิดใช้งานปลั๊กอินใหม่ทีละรายการ หลังจากเปิดใช้งานแต่ละอันแล้ว ให้โหลดหน้าเว็บซ้ำ เมื่อเกิดข้อผิดพลาด Cloudflare อีกครั้ง คุณจะรู้ว่าปลั๊กอินตัวใดเป็นตัวการ คุณสามารถขอความช่วยเหลือจากผู้พัฒนาปลั๊กอินได้โดยการโพสต์ตั๋วใน WordPress
ตรวจสอบให้แน่ใจว่าธีมและปลั๊กอินของคุณเป็นเวอร์ชันล่าสุด และรองรับเวอร์ชัน PHP ของคุณ
3. ปิดใช้งานไฟร์วอลล์และ CDN . ของคุณชั่วคราว
ปัญหาอาจเกิดจากเครือข่ายการจัดส่งเนื้อหา (CDN) หรือไฟร์วอลล์ นี่เป็นปัญหาทั่วไปของผู้ให้บริการที่มีเลเยอร์ไฟร์วอลล์เพิ่มเติม เช่น Cloudflare คุณสามารถตรวจสอบหน้าสถานะออนไลน์ของ Cloudflare เพื่อดูข้อมูลเกี่ยวกับปัญหาที่เกิดขึ้นกับบริการ หรือติดต่อได้
หากมีการยืนยันว่าปัญหาอยู่ที่ไฟร์วอลล์หรือ CDN ของคุณ ให้ลองปิดการใช้งานชั่วคราว จากนั้นเปิดใช้งานหลังจากนั้น
4. ตรวจสอบเซิร์ฟเวอร์ DNS ของคุณ
บางครั้งเซิร์ฟเวอร์ระบบชื่อโดเมน (DNS) ของคุณสามารถส่งคืนข้อผิดพลาด 502 เนื่องจากโดเมนของเว็บไซต์ของคุณอาจไม่ได้ชี้ไปยังที่อยู่ IP ที่ถูกต้อง หากคุณเพิ่งย้ายเว็บไซต์ของคุณไปยังบริการโฮสติ้งอื่น คุณจะต้องรออย่างน้อย 24 ชั่วโมงเพื่อให้การเผยแพร่ผ่านอินเทอร์เน็ตเสร็จสมบูรณ์
หากไม่เป็นเช่นนั้น หากต้องการล้างที่อยู่ IP และบันทึก DNS อื่นๆ จากแคช DNS ในเครื่อง คุณสามารถลองล้างข้อมูลได้ โดยทำดังนี้:
- เปิดหน้าต่างคำสั่ง
- ป้อน |_+_|.
หรือผ่าน Mac:
- เปิดหน้าต่างเทอร์มินัล
- ป้อน |_+_|.
502 Bad Gateway แก้ไขแล้ว!
ข้อความแสดงข้อผิดพลาด 502 Bad Gateway เป็นการตอบสนองมาตรฐานเมื่อมีบางอย่างผิดปกติกับการสื่อสารระหว่างเซิร์ฟเวอร์ที่เกี่ยวข้องกับการส่งคืนคำขอเว็บของคุณ
ข้อความแสดงข้อผิดพลาด 500 โดยทั่วไปหมายความว่ามีปัญหากับฝั่งเซิร์ฟเวอร์ของการแลกเปลี่ยน อย่างไรก็ตาม ในบางครั้ง สาเหตุอาจเกิดจากอุปกรณ์คอมพิวเตอร์ในพื้นที่ของผู้ใช้และ/หรือการตั้งค่าเครือข่าย โชคดีที่นี่เป็นข้อผิดพลาดทั่วไป และมีหลายสิ่งหลายอย่างที่คุณสามารถลองใช้เพื่อแสดงหน้าเว็บของคุณ หรืออย่างน้อยก็ทำให้คุณเข้าใจสาเหตุที่แท้จริงมากขึ้น
คุณพบข้อความแสดงข้อผิดพลาดใดอีกบ้างเมื่อเข้าชมหน้าเว็บ ปัญหาได้รับการแก้ไขหรือไม่? แจ้งให้เราทราบในส่วนความคิดเห็น