วิธีแก้ไขข้อผิดพลาดการหมดเวลาของเกตเวย์ 504 บนไซต์ WordPress ของคุณ
เผยแพร่แล้ว: 2020-10-26ข้อผิดพลาด 504 Gateway Timeout เป็นหนึ่งในข้อผิดพลาด HTTP 5xx ที่พบบ่อยที่สุดที่เจ้าของเว็บไซต์และผู้เยี่ยมชมเว็บไซต์ต้องเผชิญ สำหรับบล็อก WordPress และแพลตฟอร์มอีคอมเมิร์ซจำนวนมาก การรู้วิธีแก้ไขข้อผิดพลาดของเซิร์ฟเวอร์เช่นนี้เป็นสิ่งสำคัญที่จะป้องกันไม่ให้ผู้เยี่ยมชมที่ได้มาอย่างยากลำบากตีกลับไปยังไซต์ของคู่แข่ง
เนื่องจากข้อผิดพลาด 504 Gateway Timeout ไม่ได้บอกคุณว่าเหตุใดจึงเกิดขึ้น จึงเป็นเรื่องยากที่จะระบุสาเหตุที่ทำให้เซิร์ฟเวอร์หมดเวลา บทความนี้จะช่วยให้คุณเข้าใจรายละเอียด เรียนรู้วิธีวินิจฉัยสาเหตุ แล้วแก้ไข
หลังจากลองใช้วิธีแก้ปัญหาต่างๆ ทั้งหมดที่กล่าวถึงในโพสต์แล้ว ไซต์ของคุณควรพร้อมใช้งานในเวลาไม่นาน
ฟังดูน่าสนใจ? มาดำน้ำกันเถอะ!
ต้องการดูเวอร์ชันวิดีโอหรือไม่
ข้อผิดพลาดการหมดเวลาของเกตเวย์ 504 คืออะไร?
ทุกครั้งที่คุณเยี่ยมชมเว็บไซต์ในเบราว์เซอร์ของคุณ เบราว์เซอร์จะส่งคำขอไปยังเว็บเซิร์ฟเวอร์ที่โฮสต์เว็บไซต์นั้น เซิร์ฟเวอร์ประมวลผลคำขอและตอบกลับด้วยทรัพยากรที่ร้องขอ

การตอบสนองของเซิร์ฟเวอร์มีรหัสสถานะ HTTP หนึ่งรหัสเพื่อระบุสถานะของการตอบกลับไปยังเบราว์เซอร์ แต่รหัสสถานะ HTTP เหล่านี้ไม่ใช่ข้อผิดพลาดทั้งหมด ตัวอย่างเช่น รหัสสถานะ 200 OK หมายความว่าเซิร์ฟเวอร์ประมวลผลคำขอได้สำเร็จและ "ทุกอย่างเรียบร้อย"
รหัสสถานะ HTTP คลาส 5xx บ่งชี้ว่ามีบางอย่างผิดปกติกับเซิร์ฟเวอร์ เซิร์ฟเวอร์รับทราบ และไม่สามารถดำเนินการตามคำขอของไคลเอ็นต์ได้ ด้วยเหตุนี้ จึงเรียกว่ารหัสสถานะ ข้อผิดพลาดของเซิร์ฟเวอร์ 5xx
อย่างเป็นทางการ 5 รหัสสถานะถูกระบุภายใต้คลาส 5xx (500, 501, 502, 503, 504) คุณอาจพบรหัสที่ไม่เป็นทางการมากมายเช่นกัน (506, 507, 509, 520 เป็นต้น)
Internet Engineering Task Force (IETF) กำหนดข้อผิดพลาด 504 Gateway Timeout เป็น:
รหัสสถานะ 504 (หมดเวลาเกตเวย์) ระบุว่าเซิร์ฟเวอร์ในขณะที่ทำหน้าที่เป็นเกตเวย์หรือพร็อกซี ไม่ได้รับการตอบกลับในเวลาที่เหมาะสมจากเซิร์ฟเวอร์อัปสตรีมที่จำเป็นต้องเข้าถึงเพื่อดำเนินการตามคำขอให้เสร็จสิ้น
เพื่อให้ง่ายขึ้น ข้อผิดพลาดนี้เกิดขึ้นเมื่อสองเซิร์ฟเวอร์มีส่วนร่วมในการประมวลผลคำขอ เซิร์ฟเวอร์แรก (โดยทั่วไปคือเซิร์ฟเวอร์หลัก) หมดเวลา โดยรอการตอบกลับจากเซิร์ฟเวอร์ที่สอง (เซิร์ฟเวอร์อัปสตรีม)
ข้อผิดพลาด 504 Gateway Timeout ปรากฏขึ้นในรูปแบบต่างๆ โดยปกติแล้วจะแสดงวิธีต่างๆ ดังต่อไปนี้

ข้อผิดพลาด 504 เกตเวย์หมดเวลาจะคล้ายกับข้อผิดพลาด 502 Bad Gateway ซึ่งระบุว่าเซิร์ฟเวอร์แรกได้รับการตอบกลับที่ไม่ถูกต้องจากเซิร์ฟเวอร์ที่สอง (เซิร์ฟเวอร์อัปสตรีม)

ข้อผิดพลาดการหมดเวลาของเกตเวย์ 504 แบบต่างๆ
เบราว์เซอร์แสดงข้อผิดพลาด 504 Gateway Timeout อยู่ข้างใน เช่นเดียวกับข้อผิดพลาดอื่นๆ เนื่องจากมีหลายระบบปฏิบัติการ เว็บเซิร์ฟเวอร์ เบราว์เซอร์ และตัวแทนผู้ใช้ จึงสามารถแสดงได้หลายวิธี
ด้านล่างนี้คือรูปแบบข้อความแสดงข้อผิดพลาด 504 แบบทั่วไปที่คุณอาจพบ:
- 504 เกตเวย์หมดเวลา
- 504 หมดเวลาเกตเวย์ NGINX
- NGINX 504 เกตเวย์หมดเวลา
- ข้อผิดพลาดการหมดเวลาของเกตเวย์
- ข้อผิดพลาด 504
- ข้อผิดพลาด HTTP 504
- HTTP Error 504 — เกตเวย์หมดเวลา
- HTTP 504
- 504 ข้อผิดพลาด
- เกตเวย์หมดเวลา (504)
- หน้านี้ใช้งานไม่ได้ — โดเมนใช้เวลาในการตอบกลับนานเกินไป
- 504 หมดเวลาเกตเวย์ — เซิร์ฟเวอร์ไม่ตอบสนองในเวลา
- คำขอหน้าถูกยกเลิกเพราะใช้เวลานานเกินไปในการดำเนินการ
- ผู้เยี่ยมชมไซต์: เกิดปัญหาในการให้บริการตามคำขอของคุณ โปรดลองอีกครั้งหลังจากนี้สักครู่
- เจ้าของไซต์: มีการหมดเวลาของเกตเวย์ คุณควรไปที่บันทึกข้อผิดพลาดเพื่อดูข้อมูลเพิ่มเติม
- หน้าจอสีขาวว่างเปล่า
การตอบสนองข้อผิดพลาดทั้งหมดข้างต้นแม้ว่าจะมีคำพูดต่างกัน แต่ชี้ไปที่ข้อผิดพลาดเซิร์ฟเวอร์ 504 Gateway Timeout เดียวกัน
เว็บเซิร์ฟเวอร์และเว็บไซต์สามารถปรับแต่งวิธีแสดงข้อผิดพลาด 504 Gateway Timeout ต่อผู้ใช้ได้ บางอย่างก็เท่ได้! เป็นกลวิธีที่ยอดเยี่ยมในการระงับความผิดหวังของผู้มาเยือน

ผลกระทบ SEO ของข้อผิดพลาดการหมดเวลาเกตเวย์ 504
ข้อผิดพลาด 5xx ทั้งหมดทำให้ไม่สามารถโหลดหน้าเว็บได้ ซึ่งทำให้เกิดความเสียหายต่อประสบการณ์ของผู้ใช้ ดังนั้น เสิร์ชเอ็นจิ้นอย่าง Google จึงให้ความสำคัญกับข้อผิดพลาดเหล่านี้ หากข้อผิดพลาดยังคงอยู่เป็นเวลานาน อาจนำไปสู่การเลิกทำดัชนีหน้าเว็บจากผลลัพธ์ของเครื่องมือค้นหา
ตัวอย่างเช่น เมื่อสไปเดอร์ของ Google พบข้อผิดพลาด 503 Service Unavailable พวกเขาจะเข้าใจว่าเป็นปัญหาชั่วคราว เนื่องจากส่วนใหญ่จะใช้เพื่อเปิดใช้งานโหมดการบำรุงรักษาไซต์ ดังนั้น พวกเขาจะพยายามรวบรวมข้อมูลหน้าอีกครั้งในภายหลัง
ข้อผิดพลาดการหมดเวลาของเกตเวย์ 504 ไม่จำเป็นต้องเกิดขึ้นเพียงชั่วคราว เนื่องจากอาจเกิดจากสาเหตุหลายประการ หากเว็บไซต์ของคุณหยุดทำงานเพียงไม่กี่นาที และหากสไปเดอร์พยายามรวบรวมข้อมูลหลายครั้งทุกนาที พวกมันจะพยายามแสดงหน้าจากแคชของพวกมัน พวกเขาไม่แม้แต่จะสังเกตเห็น
แต่ถ้าไซต์ของคุณหยุดทำงานเป็นเวลา 6 ชั่วโมงขึ้นไป Google จะถือว่าข้อผิดพลาด 504 เป็นปัญหาร้ายแรงทั่วทั้งไซต์ที่คุณต้องแก้ไขโดยเร็วที่สุด สิ่งนี้สามารถส่งผลเสียต่อ SEO ของคุณ

Google Search Console เป็นหนึ่งในเครื่องมือ SEO ที่ดีที่สุดในการตรวจสอบข้อผิดพลาด HTTP 5xx ของเว็บไซต์ของคุณ
สาเหตุของข้อผิดพลาดการหมดเวลาของเกตเวย์ 504
เนื่องจากข้อผิดพลาด 504 เกิดจากการหมดเวลาระหว่างเซิร์ฟเวอร์ ปัญหาอาจไม่ได้อยู่ที่อุปกรณ์ของไคลเอ็นต์หรือการเชื่อมต่ออินเทอร์เน็ต ซึ่งรวมถึงอุปกรณ์และการเชื่อมต่อของคุณด้วย
ข้อผิดพลาด 504 Gateway Timeout บ่งชี้ว่าเว็บเซิร์ฟเวอร์รอการตอบสนองจากเซิร์ฟเวอร์อื่นนานเกินไปและ "หมดเวลา" อาจมีสาเหตุหลายประการสำหรับการหมดเวลานี้: เซิร์ฟเวอร์อื่นทำงานไม่ถูกต้อง โอเวอร์โหลด หรือหยุดทำงาน
เซิร์ฟเวอร์อื่นไม่จำเป็นต้องเป็นเซิร์ฟเวอร์ภายนอกเสมอไป (เช่น CDN, API เกตเวย์) นอกจากนี้ยังสามารถเป็นเอนทิตีที่เหมือนเซิร์ฟเวอร์ภายในเว็บเซิร์ฟเวอร์หลัก (เช่น พร็อกซีเซิร์ฟเวอร์ย้อนกลับ เซิร์ฟเวอร์ฐานข้อมูล)
วิธีแก้ไขข้อผิดพลาดการหมดเวลาของเกตเวย์ 504
หากไม่ทราบรายละเอียดที่แน่นอนเกี่ยวกับไซต์ WordPress เช่น การกำหนดค่าเซิร์ฟเวอร์ แผนโฮสติ้ง ปลั๊กอินของบุคคลที่สาม และปริมาณการใช้งานที่ดึงดูด คุณอาจพบว่าการแก้ไขข้อผิดพลาด 504 Gateway Timeout นั้นน่าหงุดหงิดและล้นหลาม
เนื่องจากมีหลายตัวแปรที่เกี่ยวข้อง เราขอแนะนำให้คุณเริ่มต้นด้วยการแก้ไขปัญหาฝั่งไคลเอ็นต์ ซึ่งค่อนข้างหายาก แล้วจึงค่อยดำเนินการแก้ไขปัญหาฝั่งเซิร์ฟเวอร์ พวกเขามักจะเป็นผู้กระทำผิดที่มีข้อผิดพลาด 504
ลองโหลดหน้าเว็บใหม่
สิ่งแรกที่คุณสามารถลองได้เมื่อพบข้อผิดพลาด 504 Gateway Timeout คือรอสักครู่แล้วลองโหลดหน้านี้ใหม่
คุณสามารถกดแป้นพิมพ์ลัด F5 เพื่อรีเฟรช/โหลดหน้าเว็บซ้ำในเบราว์เซอร์ส่วนใหญ่ หากต้องการลบแคชของเบราว์เซอร์ของหน้าก่อนโหลดซ้ำ ให้กดคำสั่งผสมทางลัด CTRL+F5 แทน

ขณะที่คุณใช้งาน คุณสามารถลองโหลดไซต์ในเบราว์เซอร์อื่นเพื่อแยกแยะว่าเป็นปัญหา เนื่องจากข้อผิดพลาด 504 ส่วนใหญ่เกิดจากการโอเวอร์โหลดเซิร์ฟเวอร์ชั่วคราว การใช้วิธีแก้ปัญหานี้ควรทำให้ไซต์ของคุณกลับมาใช้งานได้อีกครั้ง
หากการรอและโหลดไซต์ซ้ำไม่สามารถแก้ไขปัญหาข้อผิดพลาด 504 ได้ คุณสามารถตรวจสอบได้ว่าไซต์หยุดให้บริการสำหรับทุกคนหรือเฉพาะคุณเท่านั้น เครื่องมือออนไลน์ที่มีประโยชน์สองอย่างในการทดสอบไซต์สำหรับการหยุดทำงานคือ Down for Everyone หรือ Just Me และ Is Down Right Now?

รีบูตอุปกรณ์เครือข่ายของคุณ
บางครั้ง ปัญหากับอุปกรณ์เครือข่ายของคุณ เช่น โมเด็มหรือเราเตอร์ อาจทำให้เกิดข้อผิดพลาด 504 Gateway Timeout การรีบูตอุปกรณ์เหล่านี้สามารถช่วยคุณแก้ไขปัญหาได้
แม้ว่าคุณจะสามารถปิดอุปกรณ์เครือข่ายทั้งหมดเหล่านี้ในลำดับใดก็ได้ ลำดับการเปิดอุปกรณ์เหล่านั้นกลับมีความสำคัญ โดยทั่วไปแล้ว ให้เปิดอุปกรณ์เหล่านี้จาก "ภายนอก-ใน" ตามลำดับการเชื่อมต่อจากผู้ให้บริการอินเทอร์เน็ตไปยังอุปกรณ์ไคลเอนต์หลักของคุณ
ตรวจสอบการตั้งค่าพร็อกซีของคุณ
พร็อกซีเซิร์ฟเวอร์อยู่ระหว่างอุปกรณ์ของคุณกับอินเทอร์เน็ต ส่วนใหญ่จะใช้เพื่อปรับปรุงความเป็นส่วนตัวออนไลน์โดยการซ่อนข้อมูลส่วนตัว (เช่น ตำแหน่งอุปกรณ์) จากเว็บไซต์และเว็บเซิร์ฟเวอร์ (เช่น การใช้ VPN)
แม้ว่าพร็อกซีเซิร์ฟเวอร์จะทำให้เกิดข้อผิดพลาด 504 ได้ยาก แต่บางครั้งการตั้งค่าพร็อกซีเซิร์ฟเวอร์ที่ไม่ถูกต้องอาจเป็นสาเหตุ คุณสามารถปิดใช้งานพร็อกซีเซิร์ฟเวอร์และลองโหลดหน้าเว็บใหม่เพื่อดูว่าจะแก้ไขข้อผิดพลาดได้หรือไม่

ไคลเอ็นต์ส่วนใหญ่ไม่ได้ใช้บริการพร็อกซี ดังนั้นคุณสามารถข้ามขั้นตอนนี้ได้ หากคุณมั่นใจว่าคุณไม่ได้ใช้พร็อกซีเซิร์ฟเวอร์ใดๆ อย่างไรก็ตาม คุณอาจตั้งค่าไว้โดยที่คุณไม่รู้ตัวด้วยซ้ำ เราขอแนะนำให้คุณตรวจสอบการตั้งค่าพร็อกซีของอุปกรณ์และเบราว์เซอร์ของคุณเพื่อแยกแยะสาเหตุนี้
ปัญหา DNS
ข้อผิดพลาด 504 Gateway Timeout อาจเกิดจากปัญหา DNS ที่ฝั่งเซิร์ฟเวอร์หรือฝั่งไคลเอ็นต์ (หรือทั้งสองอย่าง)
สาเหตุที่เป็นไปได้มากที่สุดสำหรับปัญหา DNS ฝั่งเซิร์ฟเวอร์คือ FQDN (ชื่อโดเมนแบบเต็ม) ไม่แก้ไขที่อยู่ IP ที่ถูกต้อง หรือ เซิร์ฟเวอร์ DNS ไม่ตอบสนอง โดยปกติ สิ่งนี้จะเกิดขึ้นเมื่อคุณเพิ่งย้ายไซต์ WordPress ของคุณไปยังเซิร์ฟเวอร์หรือโฮสต์ใหม่ ดังนั้น จึงเป็นเรื่องสำคัญที่จะต้องรอให้ระเบียน DNS ของโดเมนเผยแพร่อย่างสมบูรณ์ ซึ่งอาจใช้เวลาถึง 24 ชั่วโมง
คุณสามารถใช้เครื่องมือฟรี เช่น whatsmydns.net DNS Checker หรือ DNSMap เพื่อดูว่า DNS ของคุณแพร่กระจายไปทั่วโลกหรือไม่

สำหรับการแก้ไขปัญหา DNS ฝั่งไคลเอ็นต์ คุณสามารถลองล้างแคช DNS ในเครื่องของคุณ เหมือนกับการล้างแคชของเบราว์เซอร์ ยกเว้นที่นี่ คุณกำลังล้างแคช DNS จากระบบปฏิบัติการ
หากคุณใช้ Windows คุณสามารถล้างแคช DNS ได้โดยเปิด Command Prompt และป้อนคำสั่งต่อไปนี้:
ipconfig /flushdns

คุณควรเห็น "ล้างแคชตัวแก้ไข DNS สำเร็จ" ข้อความถ้ามันทำงาน
สำหรับ macOS เวอร์ชันล่าสุด คุณสามารถเปิด Terminal และเรียกใช้คำสั่งต่อไปนี้:
sudo killall -HUP mDNSResponder
คุณจะไม่เห็นการแจ้งเตือนใด ๆ ใน macOS เมื่อกระบวนการเสร็จสิ้น แต่คุณสามารถเปลี่ยนได้โดยการต่อท้ายคำสั่งด้วยข้อความที่กำหนดเองของคุณ
sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully
หากคุณใช้ macOS เวอร์ชันเก่า คำสั่งที่คุณต้องป้อนจะแตกต่างกันไปตามเวอร์ชันของ macOS ที่คุณกำลังใช้งาน สำหรับรายละเอียดเพิ่มเติม คุณสามารถดูส่วน macOS ในบทช่วยสอน flush DNS เชิงลึกของ Kinsta
หากคุณกำลังใช้ระบบปฏิบัติการ Linux กระบวนการนี้ค่อนข้างคล้ายกับ macOS เนื่องจากแม้แต่ Linux ก็ใช้ Terminal เป็นอินเทอร์เฟซบรรทัดคำสั่ง เนื่องจากมีลีนุกซ์รุ่นต่างๆ มากมาย คำสั่งที่แน่นอนที่คุณต้องรันอาจแตกต่างกันไปในแต่ละ distro คุณสามารถดูคำแนะนำของ Kinsta สำหรับข้อมูลเพิ่มเติม
สุดท้าย คุณสามารถเปลี่ยนเซิร์ฟเวอร์ DNS ฝั่งไคลเอ็นต์ได้ชั่วคราว โดยค่าเริ่มต้น ISP ของคุณจะกำหนดเซิร์ฟเวอร์ DNS ให้กับคุณโดยอัตโนมัติ แต่คุณสามารถเปลี่ยนสิ่งเหล่านี้เป็น DNS IP สาธารณะได้ชั่วคราว
เซิร์ฟเวอร์ DNS ที่เชื่อถือได้บางตัวที่คุณสามารถลองใช้ได้ ได้แก่ Google Public DNS, Cloudflare 1.1.1.1, Quad9 DNS และ Cisco OpenDNS

ปิดการใช้งาน CDN ของเว็บไซต์ของคุณชั่วคราว
บางครั้ง ปัญหาอาจเกิดจากเครือข่ายการจัดส่งเนื้อหา (CDN) ของคุณด้วย หากเซิร์ฟเวอร์ต้นทางของไซต์ไม่สามารถเข้าถึงได้ CDN ส่วนใหญ่จะพยายามให้บริการหน้าเว็บแบบเต็มจากแคช
แต่ CDN ส่วนใหญ่ไม่เปิดใช้งานคุณลักษณะนี้โดยค่าเริ่มต้น เนื่องจากเป็นการซับซ้อนในการแคชเนื้อหาแบบไดนามิกบนไซต์ส่วนใหญ่ (เช่น แดชบอร์ดผู้ดูแลระบบ WordPress)

วิธีที่ตรงไปตรงมาในการแก้ไขปัญหานี้คือปิดใช้งาน CDN ของคุณชั่วคราว ตัวอย่างเช่น หากคุณใช้ปลั๊กอิน CDN Enabler WordPress ฟรีเพื่อเชื่อมโยงเนื้อหาไซต์ของคุณกับ URL ของ CDN คุณสามารถปิดใช้งานปลั๊กอินและทดสอบการโหลดไซต์ซ้ำได้
เช่นเดียวกับการใช้ปลั๊กอินอื่น ๆ ที่คุณอาจใช้เพื่อเชื่อมต่อกับ CDN ของคุณ (เช่น WP Rocket, Breeze, W3 Total Cache)
หากคุณไม่สามารถเข้าถึงแดชบอร์ดผู้ดูแลระบบของไซต์ได้ คุณสามารถปิดใช้งานปลั๊กอินผ่าน SFTP ได้โดยเปลี่ยนชื่อโฟลเดอร์ของปลั๊กอิน

CDN เช่น Cloudflare หรือ Sucuri ซึ่งให้บริการพร็อกซีเต็มรูปแบบ มีไฟร์วอลล์พิเศษระหว่างเซิร์ฟเวอร์ขอบและเซิร์ฟเวอร์ต้นทางของคุณ ดังนั้น คุณอาจพบข้อผิดพลาด HTTP 5xx บ่อยขึ้นขณะใช้งาน ข้อผิดพลาดแคช 5xx ส่วนใหญ่ส่งคืนโดยเซิร์ฟเวอร์ต้นทางของคุณ ดังนั้นจึงง่ายต่อการแก้ไขปัญหา
แผนบริการฟรีของ Cloudflare มีแนวโน้มที่จะเกิดข้อผิดพลาด 5xx ขออภัย เนื่องจากเป็นบริการพร็อกซีเต็มรูปแบบ จึงไม่มีทางปิดการใช้งานได้อย่างรวดเร็ว แต่ก่อนที่คุณจะตำหนิ Cloudflare ให้รู้ว่า Cloudflare แสดงข้อผิดพลาด 504 Gateway Timeout สองรูปแบบ
504 หมดเวลาเกตเวย์ที่ Cloudflare (รูปแบบที่ 1)
Cloudflare จะแสดงหน้าจอข้อผิดพลาด 504 Gateway Timeout แบบกำหนดเองเมื่อเซิร์ฟเวอร์ต้นทางของเว็บไซต์ของคุณตอบสนองด้วยการตอบสนอง HTTP 504 มาตรฐาน

ในที่นี้ ปัญหาอยู่ที่เว็บเซิร์ฟเวอร์ของคุณ ไม่ใช่ Cloudflare คุณสามารถลองแก้ไขด้วยวิธีแก้ปัญหาอื่นๆ ที่กล่าวถึงด้านล่าง หรือติดต่อฝ่ายสนับสนุนของผู้ให้บริการโฮสต์ของคุณเพื่อขอความช่วยเหลือด้านเทคนิค
504 หมดเวลาเกตเวย์ที่ Cloudflare (รูปแบบที่ 2)
หาก Cloudflare ทำให้เกิดข้อผิดพลาด 504 Gateway Timeout หน้าจอแสดงข้อผิดพลาดจะกล่าวถึง “cloudflare” ซึ่งปัจจุบันเป็นชื่อเซิร์ฟเวอร์มาตรฐานสำหรับสินทรัพย์ Cloudflare ทั้งหมด โดยปกติ หน้าจอแสดงข้อผิดพลาดจะปรากฏขึ้นดังนี้:

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

504 หมดเวลาเกตเวย์ที่ Cloudflare เนื่องจากการอัปโหลดจำนวนมาก
ขนาดของการอัปโหลดของคุณไปยังไซต์ของคุณอาจเป็นสาเหตุของการหมดเวลาของเซิร์ฟเวอร์ Cloudflare จำกัดขนาดไฟล์อัปโหลด (ต่อคำขอ HTTP POST) ให้เหลือเพียง 100 MB สำหรับทั้งแผนฟรีและแผน Pro

ปัญหาอาจอยู่ที่ฝั่งโฮสต์ของคุณหรือกับ Cloudflare คุณสามารถค้นหาสาเหตุที่แท้จริงได้โดยการข้าม Cloudflare ด้วยไฟล์โฮสต์ DNS ของคุณ แล้วลองอัปโหลดอีกครั้ง
หากคุณใช้ Cloudflare กับ WordPress ฉันขอแนะนำให้ใช้ปลั๊กอินฟรีและยกเว้น URL ที่สำคัญจากการแคช (เช่น แดชบอร์ดผู้ดูแลระบบ WordPress) คุณสามารถอ้างถึงโพสต์โดยละเอียดของ Kinsta เกี่ยวกับวิธีกำหนดการตั้งค่า Cloudflare สำหรับ WordPress
การอ่านที่แนะนำ: วิธีตั้งค่า Cloudflare APO สำหรับ WordPress
ปัญหาเซิร์ฟเวอร์ (ตรวจสอบกับโฮสต์ของคุณ)
ปัญหาเซิร์ฟเวอร์เป็นหนึ่งในสาเหตุที่พบบ่อยที่สุดในการพบข้อผิดพลาด 504 Gateway Timeout เนื่องจากไซต์ WordPress ส่วนใหญ่โฮสต์อยู่บนเว็บเซิร์ฟเวอร์ Nginx หรือ Apache ดังนั้น Nginx หรือ Apache จึงรอการตอบกลับจากบางสิ่งและหมดเวลา
ลูกค้าจำนวนมากมาที่ Kinsta เนื่องจากปัญหาที่พวกเขาพบในโฮสต์ WordPress อื่น ๆ การสนทนามีลักษณะดังนี้:
เราได้รับผู้เข้าชมประมาณ 100,000 คนต่อเดือน โดยมีการดูมากกว่า 200,000 ครั้ง ขณะนี้ เรากำลังโฮสต์กับ ____ และเราพบข้อผิดพลาด 504 อย่างต่อเนื่องเนื่องจากเซิร์ฟเวอร์โอเวอร์โหลด ฉันไม่ชอบวิธีที่ ____ จัดการกับปัญหา และเราได้รับคำแนะนำว่าเราจะต้องย้ายไปใช้แผนเฉพาะของพวกเขาเร็วๆ นี้ ซึ่งฉันเชื่อว่าไม่จำเป็น
ไซต์ที่มีการเข้าชมสูงและอีคอมเมิร์ซมีแนวโน้มที่จะได้รับข้อผิดพลาด 504 มากกว่า เนื่องจากเซิร์ฟเวอร์โอเวอร์โหลดเนื่องจากสร้างคำขอที่ไม่สามารถแคชได้จำนวนมาก อย่างไรก็ตาม ปัญหานี้สามารถครอบตัดกับไซต์ใดก็ได้ รวมถึงบล็อกทั่วไป เจ้าของที่พักหลายคนจะขอให้คุณอัปเกรดเป็นแผนระดับสูงเพื่อแก้ไขปัญหา ซึ่งโดยส่วนใหญ่ไม่จำเป็น

Kinsta ใช้โฮสต์ที่มีการจัดการ LXD และคอนเทนเนอร์ซอฟต์แวร์ LXC ที่ประสานไว้สำหรับแต่ละไซต์ ดังนั้น ไซต์ WordPress ทุกแห่งจึงถูกจัดเก็บไว้ในคอนเทนเนอร์ที่แยกออกมาต่างหากที่สามารถเข้าถึงซอฟต์แวร์ทั้งหมดที่จำเป็นในการรัน (Linux, Nginx, PHP, MySQL) แหล่งข้อมูลมีความเป็นส่วนตัว 100% และจะไม่แชร์กับไซต์อื่น แม้แต่ไซต์ของคุณ
โฮสต์ WordPress ส่วนใหญ่ที่ให้บริการแผนโฮสติ้งที่ใช้ร่วมกันไม่มีความสามารถนี้ ดังนั้นไซต์ที่มีการเข้าชมสูงโฮสต์บนเซิร์ฟเวอร์เดียวกันกับของคุณอาจทำให้ไซต์ของคุณแสดงข้อผิดพลาด 504 ได้เช่นกัน
นอกเหนือจากการแยกแต่ละไซต์ในคอนเทนเนอร์แล้ว Kinsta ยังออกแบบโครงสร้างพื้นฐานเพื่อจัดการการเชื่อมต่อพร้อมกันนับพันได้อย่างง่ายดาย Kinsta ยังโฮสต์ฐานข้อมูล MySQL ที่ localhost ไม่ใช่เซิร์ฟเวอร์ระยะไกล ซึ่งหมายความว่าไม่มีเวลาแฝงระหว่างเครื่อง ส่งผลให้มีการสืบค้นเร็วขึ้นและมีโอกาสเกิดหมดเวลาน้อยลง
ลูกค้าจำนวนมากที่ย้ายไปยัง Kinsta พบว่าเวลาในการโหลดโดยรวมลดลงอย่างมาก

เซิร์ฟเวอร์ที่โอเวอร์โหลดไม่ใช่สาเหตุเดียวของการหมดเวลาของเซิร์ฟเวอร์ อาจมีสาเหตุอื่นๆ มากมายสำหรับข้อผิดพลาด 504:
โครงสร้างพื้นฐานเซิร์ฟเวอร์ช้า
เซิร์ฟเวอร์ที่คุณใช้เพื่อโฮสต์ไซต์ WordPress ของคุณอาจมีทรัพยากรไม่เพียงพอที่จะจัดการกับโหลด มันเหมือนกับการเล่นวิดีโอเกมที่ทันสมัยและเน้นกราฟิกบนพีซีอายุหลายสิบปี
เซิร์ฟเวอร์เพิ่งวางสายเพื่อพยายามให้บริการเว็บไซต์ ทางออกเดียวสำหรับปัญหานี้คือการอัปเกรดเป็นเซิร์ฟเวอร์ที่มีโครงสร้างพื้นฐานที่ดีกว่า ด้วยเหตุผลนี้ แม้แต่แผนโฮสติ้ง WordPress ขั้นพื้นฐานที่สุดของ Kinsta ก็จะจัดการไซต์แบบคงที่ที่มีปริมาณการใช้ข้อมูลปานกลาง
ต้องการพนักงาน PHP มากขึ้น
พนักงาน PHP ใช้เพื่อรันโค้ดของไซต์ WordPress ของคุณ ไซต์อีคอมเมิร์ซที่มีผู้เข้าชม 50,000 คนต่อเดือนต้องการทรัพยากรมากกว่าบล็อกธรรมดาที่มีปริมาณการเข้าชมเท่ากัน หากผู้ปฏิบัติงาน PHP ของเซิร์ฟเวอร์ทั้งหมดไม่ว่าง พวกเขาจะสร้างคิวขึ้นมา
เมื่อคิวมีขนาดใหญ่เกินไป เซิร์ฟเวอร์จะไม่สนใจคำขอเก่า ซึ่งอาจทำให้เซิร์ฟเวอร์ส่งข้อผิดพลาด 504 เกตเวย์ คุณสามารถถามโฮสต์ของคุณเกี่ยวกับการเพิ่มจำนวนพนักงาน PHP ของคุณ ซึ่งจะทำให้ไซต์ของคุณสามารถดำเนินการตามคำขอหลายรายการพร้อมกันได้
ปัญหาไฟร์วอลล์
ไฟร์วอลล์ของเซิร์ฟเวอร์ของคุณอาจมีข้อผิดพลาดหรือมีการกำหนดค่าที่ไม่เหมาะสม บางที กฎบางอย่างอาจทำให้เซิร์ฟเวอร์ไม่สามารถทำการเชื่อมต่อได้อย่างถูกต้อง หากต้องการทราบว่าไฟร์วอลล์ของคุณเป็นตัวการหรือไม่ คุณสามารถตรวจสอบบันทึกข้อผิดพลาดของเซิร์ฟเวอร์ได้
ปัญหาการเชื่อมต่อเครือข่าย
ปัญหาการเชื่อมต่อระหว่างพร็อกซีเซิร์ฟเวอร์และเว็บเซิร์ฟเวอร์อาจทำให้เกิดความล่าช้าในการตอบสนองต่อคำขอ HTTP หากคุณใช้ตัวโหลดบาลานซ์ อาจมีปัญหาในการเชื่อมต่อเครือข่ายด้วย
หมดเวลา HTTP
การหมดเวลาของ HTTP สามารถเกิดขึ้นได้เมื่อการเชื่อมต่อระหว่างเว็บเซิร์ฟเวอร์และไคลเอนต์ถูกเปิดไว้นานเกินไป สำหรับไซต์ WordPress มักจะเกิดขึ้นเมื่อเรียกใช้การนำเข้า WordPress วิธีหนึ่งในการแก้ไขปัญหานี้คือเปลี่ยนไปใช้การเชื่อมต่ออินเทอร์เน็ตที่เร็วขึ้น
คุณยังสามารถใช้เครื่องมือที่รองรับ WP-CLI เพื่อเรียกใช้สคริปต์บนเซิร์ฟเวอร์ได้โดยตรง โดยข้ามการเชื่อมต่อ HTTP ทั้งหมด ตัวอย่างเช่น คุณสามารถใช้คำสั่ง wp import WP-CLI เพื่อเรียกใช้ปลั๊กอิน WordPress Importer ได้โดยตรงผ่านอินเทอร์เฟซบรรทัดคำสั่ง
สำคัญ: ข้อผิดพลาด 504 หมดเวลาเกตเวย์มีลักษณะคล้ายกับข้อผิดพลาด 503 บริการไม่พร้อมใช้งานหรือข้อผิดพลาด 502 เกตเวย์ไม่ถูกต้อง แต่พวกเขาทั้งหมดแตกต่างกัน หากคุณพบข้อผิดพลาด 504 ที่ Kinsta ให้เปิดตั๋วสนับสนุนเพื่อแก้ไขปัญหาของคุณทันที
สำหรับการตรวจสอบเวลาหยุดทำงานของไซต์ด้วยตัวคุณเอง คุณสามารถใช้เครื่องมือเช่น updown.io จะตรวจสอบสถานะเว็บไซต์ของคุณ (หรือ URL ใดๆ) เป็นระยะโดยส่งคำขอ HTTP ไปที่เว็บไซต์ คุณสามารถตั้งค่าความถี่ในการตรวจสอบได้ตั้งแต่ 15 วินาทีถึง 1 ชั่วโมง หากเว็บไซต์ของคุณไม่ตอบสนองอย่างถูกต้อง เว็บไซต์จะแจ้งให้คุณทราบด้วยอีเมลหรือ SMS

คุณจะได้รับเครดิตฟรีจำนวนมากจากทุกบัญชีของ updown.io แต่ถ้าคุณกำลังมองหาทางเลือกที่ถูกกว่า คุณสามารถตรวจสอบ WebGazer หรือ UptimeRobot ได้ เครื่องมือทั้งสองนี้จะช่วยคุณตรวจสอบเวลาทำงานของเว็บไซต์ทุก 5 นาทีโดยไม่เสียค่าใช้จ่าย นั่นเพียงพอสำหรับเจ้าของเว็บไซต์ส่วนใหญ่

การตรวจสอบเว็บไซต์ของคุณจะทำให้คุณทราบว่าเว็บไซต์หยุดให้บริการบ่อยเพียงใด ซึ่งจะเป็นประโยชน์อย่างยิ่งหากคุณใช้ผู้ให้บริการโฮสติ้งที่ใช้ร่วมกัน โฮสต์ WordPress ที่มีการจัดการส่วนใหญ่จะดูแลเรื่องนี้ให้คุณโดยอัตโนมัติ ดังนั้นจึงแนะนำให้ไปกับพวกเขาเสมอ
สำหรับคำอธิบายโดยละเอียด โปรดดูที่โพสต์ของ Kinsta เกี่ยวกับความสำคัญของโฮสติ้ง WordPress ที่มีการจัดการ
สแปม บอท หรือการโจมตี DDoS
ผู้โจมตีที่เป็นอันตรายสามารถนำเว็บเซิร์ฟเวอร์ของคุณไปรวบรวมข้อมูลโดยส่งคำขอที่มากเกินไปและ/หรือทรัพยากรมากเกินไป หากไซต์ของคุณถูกบอทสแปมหรือถูกโจมตี DDoS ไซต์ของคุณอาจครอบงำเซิร์ฟเวอร์ของคุณและส่งผลให้เกิดข้อผิดพลาด 504 Gateway Timeout สำหรับผู้ใช้ของแท้จำนวนมาก
คุณสามารถดูทราฟฟิกเซิร์ฟเวอร์และการวิเคราะห์เพื่อดูว่าคุณพบรูปแบบที่ผิดปกติในการเข้าชมไซต์หรือไม่ หากคุณใช้ Kinsta เพื่อโฮสต์ไซต์ของคุณ คุณสามารถดูข้อมูลนี้ได้อย่างง่ายดายโดยไปที่แดชบอร์ด MyKinsta Analytics

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

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

สุดท้าย คุณสามารถใช้ปลั๊กอินการรักษาความปลอดภัยของ WordPress เพื่อเพิ่มความปลอดภัยให้กับเว็บไซต์ของคุณโดยการระบุและปิดกั้นการรับส่งข้อมูล/IP ที่น่าเป็นห่วง คุณสามารถขอให้โฮสต์บล็อก IP บางอย่างได้เช่นกัน
ดิ้นรนกับการหยุดทำงานและปัญหา WordPress? Kinsta เป็นโซลูชันโฮสติ้งที่ออกแบบโดยคำนึงถึงประสิทธิภาพและความปลอดภัย! ตรวจสอบแผนของเรา
ขึ้นอยู่กับความยาวและขนาดของการโจมตี นี่อาจเป็นกระบวนการที่ไม่สิ้นสุดของการขึ้นบัญชีดำ IP เนื่องจากผู้โจมตีจำนวนมากเปลี่ยน IP และที่อยู่พร็อกซีหลังจากถูกบล็อก
หมายเหตุ: Kinsta ไม่อนุญาตให้ลูกค้าติดตั้งปลั๊กอินความปลอดภัย WordPress เนื่องจากอาจส่งผลกระทบอย่างมากต่อประสิทธิภาพของเว็บไซต์ โดยเฉพาะความสามารถในการสแกน เนื่องจาก Kinsta ใช้ตัวจัดสรรภาระงานกับ Google Cloud Platform การบล็อก IP จะไม่ทำงานตามที่ตั้งใจไว้เสมอไป
คุณสามารถใช้โซลูชันการรักษาความปลอดภัยเฉพาะ เช่น Cloudflare หรือ Sucuri เพื่อปกป้องไซต์ของคุณจากการโจมตี DDoS และสแปมบอท สำหรับข้อมูลเพิ่มเติม คุณสามารถดูบทความของ Kinsta เกี่ยวกับวิธีการติดตั้ง Cloudflare บนไซต์ WordPress ของคุณและวิธีที่ Sucuri ช่วยหยุดการโจมตี DDoS ในเส้นทางของมัน
ฐานข้อมูล WordPress เสียหาย
บางครั้ง ข้อผิดพลาด 504 Gateway Timeout อาจเป็นเพราะฐานข้อมูลเสียหาย โดยเฉพาะในไซต์ WordPress โดยทั่วไป สาเหตุนี้เกิดจากตารางหรือไฟล์ฐานข้อมูลที่เสียหาย บางครั้ง อาจเกิดจากปัญหาด้านความปลอดภัยที่ร้ายแรง เช่น ไซต์หรือฐานข้อมูลของคุณถูกแฮ็ก
การซ่อมแซมฐานข้อมูล WordPress ที่เสียหายขึ้นอยู่กับปัญหา ปลั๊กอินเช่น WP-DBManager ทำให้ง่ายต่อการวินิจฉัยปัญหาฐานข้อมูลและซ่อมแซม ฉันแนะนำให้คุณอ่านคำแนะนำโดยละเอียดของ Kinsta เกี่ยวกับการแก้ไขปัญหาฐานข้อมูล WordPress เพื่อเริ่มต้น
ตรวจสอบปลั๊กอินและธีมของเว็บไซต์ของคุณ
ในกรณีส่วนใหญ่ ปลั๊กอินและธีมของบริษัทอื่นจะไม่ทำให้เกิดข้อผิดพลาด 504 แต่มีโอกาสเล็กน้อยที่อาจทำให้เกิดการหมดเวลาของเซิร์ฟเวอร์ โดยปกติโดยการจัดคิวคำขอที่ไม่ได้แคชจำนวนมากที่สร้างโดยปลั๊กอิน/ธีม เนื่องจากสิ่งนี้เชื่อมโยงพนักงาน PHP ของเซิร์ฟเวอร์จำนวนมาก จึงอาจทำให้เกิดข้อผิดพลาด 504
ตัวอย่างที่ดีของปัญหานี้คือ WooCommerce ซึ่งเป็นปลั๊กอินที่ติดตั้งเพื่อเพิ่มฟังก์ชันอีคอมเมิร์ซให้กับไซต์ WordPress
วิธีที่ง่ายที่สุดในการแก้ไขปัญหานี้คือปิดใช้งานปลั๊กอินทั้งหมดของคุณ จำไว้ว่าคุณจะไม่สูญเสียข้อมูลใด ๆ หากคุณเพียงแค่ปิดใช้งานปลั๊กอิน
หากคุณสามารถเข้าถึงแดชบอร์ดของผู้ดูแลระบบได้ คุณสามารถไปที่หน้าจอ ปลั๊กอิน เลือก ปิดใช้งาน จากเมนูการดำเนินการเป็นกลุ่ม ทำเครื่องหมายที่ปลั๊กอินทั้งหมด แล้วกดปุ่ม ใช้ การดำเนินการนี้จะปิดใช้งานปลั๊กอินทั้งหมดของคุณ

หากคุณไม่สามารถเข้าถึงพื้นที่ผู้ดูแลระบบของคุณ คุณสามารถปิดใช้งานปลั๊กอินผ่าน SFTP โดยใช้วิธีการที่อธิบายไว้ก่อนหน้านี้ เพียงเปลี่ยนชื่อโฟลเดอร์ปลั๊กอินหลักเพื่อปิดใช้งานปลั๊กอินทั้งหมดเป็นกลุ่ม
เมื่อคุณปิดใช้งานปลั๊กอินทั้งหมดแล้ว ให้ตรวจสอบว่าไซต์ของคุณโหลดอย่างถูกต้องหรือไม่ หากใช้งานได้ คุณต้องเปิดใช้งานแต่ละปลั๊กอิน ทดสอบไซต์หลังจากเปิดใช้งานทุกปลั๊กอิน
สุดท้าย ตรวจสอบให้แน่ใจว่าปลั๊กอิน ธีม และแกน WordPress ของคุณเป็นปัจจุบัน นอกจากนี้ ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ของคุณใช้ PHP เวอร์ชันที่แนะนำ
หากคุณรู้สึกว่าสิ่งนี้มากเกินไป คุณสามารถติดต่อเจ้าของที่พักเพื่อขอความช่วยเหลือได้ตลอดเวลา Kinsta ใช้ Kinsta APM และเทคนิคการแก้ปัญหาอื่นๆ เพื่อช่วยให้ลูกค้าจำกัดขอบเขตของปลั๊กอิน แบบสอบถาม หรือสคริปต์ที่อาจก่อให้เกิดข้อผิดพลาด
ในสถานการณ์ที่แย่ที่สุด เช่น การสืบค้นที่ไม่มีประสิทธิภาพหรือโค้ดที่ไม่ถูกต้องในปลั๊กอิน/ธีม คุณสามารถนำนักพัฒนา WordPress เพื่อแก้ไขปัญหาได้
ตรวจสอบบันทึกข้อผิดพลาด
การดูบันทึกข้อผิดพลาดจะมีประโยชน์มากในการแก้ไขปัญหาและแก้ไขข้อผิดพลาด 504 บนไซต์ WordPress ของคุณ วิธีนี้จะช่วยให้คุณจำกัดปัญหาในไซต์ของคุณให้แคบลงได้อย่างรวดเร็ว โดยเฉพาะอย่างยิ่งหากปัญหาเกิดจากปลั๊กอินที่มีความต้องการสูงในไซต์ของคุณ
หากคุณเป็นลูกค้า Kinsta คุณสามารถดูข้อผิดพลาดได้อย่างง่ายดายในตัวแสดงบันทึกในแดชบอร์ด MyKinsta

หากโฮสต์ของคุณไม่มีเครื่องมือบันทึกข้อมูล คุณสามารถเปิดใช้งานโหมดดีบัก WordPress ได้โดยเพิ่มโค้ดต่อไปนี้ใน ไฟล์ wp-config.php :
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
ค่าคงที่ WP_DEBUG เปิดใช้งานหรือปิดใช้งานโหมดดีบัก WordPress มีค่าคงที่ที่แสดงร่วมซึ่งเป็นทางเลือกสองค่าที่สามารถขยายคุณลักษณะได้ ค่าคงที่ WP_DEBUG_LOG
กำหนดทิศทางข้อผิดพลาดทั้งหมดที่จะบันทึกลงในไฟล์ debug.log ภายในไดเร็กทอรี /wp-content/
หากคุณไม่เห็นไฟล์นี้ คุณสามารถสร้างไฟล์ได้เสมอ
ค่าคงที่ WP_DEBUG_DISPLAY
จะควบคุมว่าบันทึกการดีบักแสดงขึ้นบนหน้า HTML หรือไม่ การตั้งค่านี้เป็นเท็จจะซ่อนข้อผิดพลาดทั้งหมด แต่คุณสามารถตรวจสอบข้อผิดพลาดได้ในภายหลัง เนื่องจากคุณได้กำหนด WP_DEBUG_LOG
ว่าเป็นจริงด้วย
สำคัญ: หากคุณเปิดใช้งาน WP_DEBUG ในสภาพแวดล้อม Kinsta ระบบจะกำหนดเส้นทางข้อผิดพลาดทั้งหมดไปยังไฟล์ debug.log ไม่ใช่ error.log ในแดชบอร์ด MyKinsta
คุณยังสามารถดาวน์โหลดไฟล์บันทึกข้อผิดพลาด WordPress ดิบผ่าน SFTP โดยทั่วไป คุณจะพบบันทึกข้อผิดพลาดในไดเรกทอรีรากของเซิร์ฟเวอร์ในโฟลเดอร์ชื่อ “บันทึก”

ผู้ใช้ Kinsta ยังสามารถเปิดใช้งานโหมดดีบัก WordPress จากแดชบอร์ด MyKinsta โดยไปที่ Sites > Tools > WordPress Debugging แล้วคลิกปุ่ม Enable สิ่งนี้จะช่วยให้คุณเห็นข้อผิดพลาดและการแจ้งเตือนของ PHP โดยไม่ต้องเปิดใช้งานโหมดแก้ไขข้อบกพร่องผ่าน SSH หรือ SFTP
สุดท้ายนี้ คุณสามารถตรวจสอบไฟล์บันทึกของเซิร์ฟเวอร์ได้ ขึ้นอยู่กับเซิร์ฟเวอร์ที่คุณใช้เพื่อโฮสต์ไซต์ WordPress ของคุณ โดยทั่วไปจะพบในตำแหน่งเหล่านี้:
- อาปาเช่:
/var/log/apache2/error.log/
- Nginx:
/var/log/nginx/error.log/
คุณสามารถดูเอกสารที่เกี่ยวข้องกับการบันทึกของ Apache หรือ Nginx สำหรับข้อมูลเพิ่มเติม
กำหนดการตั้งค่า Apache หรือ Nginx อย่างเหมาะสม
คุณสามารถแก้ไขไฟล์กำหนดค่าเซิร์ฟเวอร์ของคุณเพื่อเพิ่มขีดจำกัดทรัพยากรสำหรับคำสั่งเฉพาะ นี้สามารถช่วยคุณแก้ไขข้อผิดพลาด 504 เกตเวย์หมดเวลา
สำหรับเว็บเซิร์ฟเวอร์ Apache
ขั้นแรก เพิ่มรหัสต่อไปนี้ใน httpd.conf ของคุณ:
TimeOut 600
การตั้งค่านี้กำหนดระยะเวลาที่เซิร์ฟเวอร์จะรอคำขอบางอย่างก่อนที่จะทำเครื่องหมายว่าเป็นปัญหาการหมดเวลาของเครือข่าย ค่าเริ่มต้นคือ 60 วินาที (เวอร์ชัน Apache 2.4)
คุณสามารถเพิ่มคำสั่งนี้ได้เฉพาะใน ไฟล์ httpd.conf ของคุณ ไม่ใช่ในไฟล์ .htaccess เนื่องจากผู้ให้บริการโฮสติ้งที่ใช้ร่วมกันส่วนใหญ่ไม่อนุญาตให้คุณแก้ไข ไฟล์ httpd.conf คุณจึงสามารถลองเพิ่มค่าของคำสั่ง LimitRequestBody ในไฟล์ . htaccess แทนได้
จากนั้นเพิ่มบรรทัดต่อไปนี้ใน ไฟล์ php.ini ของคุณ:
max_execution_time 300
ค่าเริ่มต้นของคำสั่ง max_execution_time ของ PHP คือ 30 วินาที การเพิ่มจะทำให้สคริปต์ PHP ของไซต์คุณทำงานได้นานขึ้น
สำหรับเว็บเซิร์ฟเวอร์ Nginx
หากคุณกำลังใช้งานไซต์ WordPress ของคุณบน Nginx + FastCGI Process Manager (PHP-FPM) หรือใช้ Nginx เป็น reverse proxy สำหรับ Apache คุณสามารถปรับแต่งการตั้งค่าเซิร์ฟเวอร์เพื่อช่วยป้องกันข้อผิดพลาด 504 Gateway Timeout
504 ข้อผิดพลาดการหมดเวลาของเกตเวย์บน Nginx + FastCGI (PHP-FPM)
ก่อนอื่น คุณต้องแก้ไขไฟล์กำหนดค่าพูล PHP-FPM คุณสามารถค้นหาได้ที่ตำแหน่ง /etc/php7.4/fpm/pool.d/www.conf
ในเซิร์ฟเวอร์ Nginx ของคุณ (เส้นทางที่แน่นอนอาจแตกต่างกันไปตามเวอร์ชัน PHP) อีกวิธีหนึ่ง คุณสามารถเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัลของคุณเพื่อแก้ไขไฟล์กำหนดค่าพูล PHP-FPM:
sudo nano /etc/php/7.2/fpm/pool.d/www.conf
ถัดไป กำหนดคำสั่งต่อไปนี้:
request_terminate_timeout = 300
หลังจากนี้ คุณต้องแก้ไข ไฟล์ php.ini ของคุณ คุณสามารถค้นหาได้ที่ /etc/php.ini
เปิดไฟล์และเพิ่ม/เปลี่ยนค่าสำหรับคำสั่ง max_execution_time
เป็น 300 วินาที
max_execution_time = 300
สุดท้าย เพิ่มรหัสต่อไปนี้ในบล็อกตำแหน่งของไฟล์ nginx.conf ของคุณ:
location ~ .php$ { ... fastcgi_read_timeout 300; }
โหลด Nginx และ PHP-FPM ใหม่เพื่อให้การเปลี่ยนแปลงมีผล
sudo service nginx reload sudo service php7.4-fpm reload
โค้ดที่แน่นอนในการรีโหลด PHP-FPM จะแตกต่างกันไปตามเวอร์ชัน PHP ที่ติดตั้งบนเซิร์ฟเวอร์ของคุณ ทดสอบไซต์ของคุณเพื่อดูว่าได้แก้ไขปัญหาแล้วหรือไม่
504 ข้อผิดพลาดการหมดเวลาของเกตเวย์บน Nginx Proxy
หากคุณใช้ Nginx เป็น reverse proxy server สำหรับ Apache คุณสามารถผ่อนปรนการหมดเวลาของเซิร์ฟเวอร์ได้โดยเพิ่มคำสั่งต่อไปนี้ในไฟล์ nginx.conf ของคุณ:
proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;
อย่าลืมโหลด Nginx ใหม่หลังจากทำการเปลี่ยนแปลงของคุณ
sudo service nginx reload
ข้อผิดพลาด HTTP อื่น ๆ เช่น 504 Gateway Timeout
ตามที่กล่าวไว้ก่อนหน้าในบทความ ข้อผิดพลาด HTTP 5xx อื่นๆ มากมายเหมือนกับข้อผิดพลาด 504 Gateway Timeout เป็นเพราะพวกเขาทั้งหมดเกิดขึ้นที่ฝั่งเซิร์ฟเวอร์ ข้อผิดพลาดเหล่านี้รวมถึง:
- 500 ข้อผิดพลาดภายในเซิร์ฟเวอร์
- 501 ไม่ได้ใช้งานข้อผิดพลาด
- 502 ข้อผิดพลาดเกตเวย์ไม่ถูกต้อง
- 503 บริการไม่พร้อมใช้งาน ข้อผิดพลาด
ข้อผิดพลาด HTTP อื่นๆ ที่เกิดจากปัญหาฝั่งไคลเอ็นต์ เช่น ข้อผิดพลาด 404 Not Found ก็เหมือนกับข้อผิดพลาด 504 เช่นกัน คุณสามารถดูคำแนะนำโดยละเอียดของ Kinsta และรายการรหัสสถานะ HTTP สำหรับข้อมูลเพิ่มเติม
สรุป
ไซต์ WordPress ของคุณอาจได้รับผลกระทบจากข้อผิดพลาด 504 Gateway Timeout เนื่องจากสาเหตุหลายประการ ในบทความนี้ คุณได้เรียนรู้วิธีแก้ไขปัญหาทั้งหมดแล้ว โดยทั่วไป ข้อผิดพลาดเหล่านี้เกิดจากปัญหาฝั่งเซิร์ฟเวอร์ ซึ่งในกรณีนี้ คุณสามารถติดต่อโฮสต์ของคุณและแก้ไขปัญหาได้อย่างรวดเร็ว
อย่างไรก็ตาม คุณต้องเข้าใจด้วยว่าข้อผิดพลาดนี้อาจเกิดจากปลั๊กอินของบุคคลที่สาม ธีม บริการ การสืบค้นฐานข้อมูลที่ไม่มีประสิทธิภาพ หรือการรวมกันของสองสิ่งนี้ขึ้นไป หากคุณกำลังใช้ทรัพยากรของเซิร์ฟเวอร์จนเต็ม (เช่น พนักงาน PHP) ขอแนะนำให้ปรับไซต์ของคุณเพื่อประสิทธิภาพ
หากคุณยังคงพบว่าเว็บไซต์ของคุณหมดเวลา คุณอาจต้องอัปเกรดแผนโฮสติ้งหรือจำนวนพนักงาน PHP เราขอแนะนำให้คุณพิจารณาตัวเลือกนี้หลังจากที่คุณใช้วิธีแก้ปัญหาอื่นๆ ทั้งหมดที่อธิบายไว้ในบทความนี้แล้วเท่านั้น
From simple static sites to complex ecommerce and membership sites, Kinsta's scalable hosting plans are designed to accommodate all types of websites. To learn more about our scalable cloud hosting, check out this article!
Did we miss anything? If you're still finding it difficult to fix the 504 Gateway Timeout error on your WordPress site, leave a comment below.