คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
วิดีโอ
ดูวิดีโอต่อไปนี้เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการแก้ปัญหาข้อผิดพลาด 503 ไม่พร้อมให้บริการ
| วิดีโอ | คำอธิบาย |
|---|---|
| ข้อผิดพลาด 503 ไม่พร้อมให้บริการจากเซิร์ฟเวอร์แบ็กเอนด์ | ดูข้อมูลเกี่ยวกับสิ่งต่อไปนี้
|
ลักษณะปัญหา
แอปพลิเคชันไคลเอ็นต์ได้รับการตอบกลับ HTTP ที่มีสถานะ 503 พร้อมข้อความ Service Unavailable หลังจากมีการเรียกพร็อกซี API
ข้อความแสดงข้อผิดพลาด
คุณอาจเห็นข้อความแสดงข้อผิดพลาดข้อความใดข้อความหนึ่งต่อไปนี้
HTTP/1.1 503 Service Unavailable
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity
นอกจากนี้ คุณยังอาจเห็นข้อความแสดงข้อผิดพลาดต่อไปนี้ ในการตอบกลับ HTTP
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
หมายเหตุ: โค้ดตอบกลับและข้อความแสดงข้อผิดพลาดข้างต้นเป็นเพียงตัวอย่างเท่านั้น ในบางกรณี คุณอาจได้รับเฉพาะโค้ดตอบกลับข้อผิดพลาดโดยไม่มีข้อความแสดงข้อผิดพลาด รูปแบบและเนื้อหาของโค้ดตอบกลับข้อผิดพลาดและข้อความแสดงข้อผิดพลาดอาจแตกต่างกันไปตามการใช้งานเซิร์ฟเวอร์แบ็กเอนด์
สาเหตุ
รหัสสถานะ HTTP 503 หมายความว่าปัจจุบันเซิร์ฟเวอร์ไม่สามารถจัดการคำขอขาเข้าได้ โดยปกติแล้วข้อผิดพลาดนี้จะเกิดขึ้นเนื่องจากเซิร์ฟเวอร์ไม่ว่างหรือหยุดทำงานชั่วคราวเพื่อบำรุงรักษา
สาเหตุที่เป็นไปได้ของการตอบกลับ 503 Service Unavailable มีดังนี้
| สาเหตุ | คำอธิบาย | ผู้ที่สามารถทำตามขั้นตอนการแก้ปัญหา |
|---|---|---|
| เซิร์ฟเวอร์ทำงานหนักเกินไป | เซิร์ฟเวอร์แบ็กเอนด์ทำงานหนักเกินไปหรือเกินความจุ และไม่สามารถจัดการคำขอไคลเอ็นต์ขาเข้าใหม่ได้ | ผู้ใช้ Edge Public และ Private Cloud |
| เซิร์ฟเวอร์อยู่ระหว่างการบำรุงรักษา | เซิร์ฟเวอร์แบ็กเอนด์อาจอยู่ระหว่างการบำรุงรักษาชั่วคราว | ผู้ใช้ Edge Public และ Private Cloud |
สาเหตุ: เซิร์ฟเวอร์ทำงานหนักเกินไป/เซิร์ฟเวอร์อยู่ระหว่างการบำรุงรักษา
ใน Apigee Edge ระบบอาจแสดงข้อผิดพลาด 503 ไม่พร้อมให้บริการจากเซิร์ฟเวอร์แบ็กเอนด์ ในกรณีต่อไปนี้
- เซิร์ฟเวอร์แบ็กเอนด์ทำงานหนักเกินไป/ไม่ว่างและไม่สามารถจัดการคำขอใหม่ได้
- เซิร์ฟเวอร์แบ็กเอนด์หยุดทำงานชั่วคราวเนื่องจากการบำรุงรักษา
การวินิจฉัย
หากต้องการวินิจฉัยข้อผิดพลาด คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้
- เครื่องมือติดตาม
- บันทึกการเข้าถึง NGINX
- การเรียกเซิร์ฟเวอร์แบ็กเอนด์โดยตรง
คลิกแท็บด้านล่างเพื่อดูข้อมูลเกี่ยวกับแต่ละวิธี
เครื่องมือติดตาม
- เปิดใช้เซสชันการติดตาม trace, และทำการเรียก API เพื่อจำลองปัญหา - 503 ไม่พร้อมให้บริการ
- เลือกคำขอที่ล้มเหลวรายการใดรายการหนึ่ง แล้วตรวจสอบการติดตาม
- ดูขั้นตอนต่างๆ ของการติดตามและค้นหาตำแหน่งที่เกิดความล้มเหลว
- หากพบว่าระบบแสดงข้อผิดพลาด 503 เป็นการตอบกลับจากเซิร์ฟเวอร์เป้าหมาย
แสดงว่าสาเหตุของข้อผิดพลาด 503 คือเซิร์ฟเวอร์เป้าหมาย
นี่คือภาพหน้าจอการติดตามตัวอย่างที่แสดงการตอบกลับ 503 ไม่พร้อมให้บริการที่ได้รับจากเซิร์ฟเวอร์เป้าหมาย
- คลิกขั้นตอนการตอบกลับที่ได้รับจากเซิร์ฟเวอร์เป้าหมาย แล้วดูส่วนหัวของการตอบกลับและเนื้อหาของการตอบกลับเพื่อดูว่ามีข้อมูลที่เป็นประโยชน์หรือไม่
- ส่วนหัวของการตอบกลับอาจมีส่วนหัวของเซิร์ฟเวอร์ ซึ่งระบุตำแหน่งที่ส่งการตอบกลับข้อผิดพลาด
- เนื้อหาของการตอบกลับอาจมีข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุที่ เซิร์ฟเวอร์เป้าหมายส่งโค้ดตอบกลับ 503
- ยืนยันว่าข้อผิดพลาด 503 มาจากเซิร์ฟเวอร์เป้าหมายโดยตรวจสอบ
ค่าของ X-Apigee-fault-source และ X-Apigee-fault-code ในขั้นตอน AX
(บันทึกข้อมูลวิเคราะห์) ในการติดตามโดยใช้ขั้นตอนด้านล่าง:
- คลิกขั้นตอน AX (บันทึกข้อมูลวิเคราะห์) ดังที่แสดงในภาพหน้าจอด้านล่าง:

- เลื่อนลงไปที่ส่วนรายละเอียดขั้นตอนไปยังส่วนหัวของการตอบกลับ และกำหนดค่า
ของ X-Apigee-fault-code และ X-Apigee-fault-source ดังที่แสดงด้านล่าง:

- หากค่าของ X-Apigee-fault-source และ X-Apigee-fault-code ตรงกับค่าที่แสดงในตารางด้านล่าง คุณจะยืนยันได้ว่าข้อผิดพลาด 503 มาจากเซิร์ฟเวอร์เป้าหมาย
ส่วนหัวของการตอบกลับ ค่า X-Apigee-fault-source เป้าหมาย X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
- คลิกขั้นตอน AX (บันทึกข้อมูลวิเคราะห์) ดังที่แสดงในภาพหน้าจอด้านล่าง:
- ตรวจสอบว่าคุณใช้การเชื่อมโยงพร็อกซีหรือไม่ เช่น หากเซิร์ฟเวอร์เป้าหมาย/ปลายทางเป้าหมายกำลัง
เรียกใช้พร็อกซีอื่นใน Apigee วิธีตรวจสอบมีดังนี้
- กลับไปที่ขั้นตอนคำขอที่ส่งไปยังเซิร์ฟเวอร์เป้าหมาย แล้ว คลิกปุ่ม Show Curl และกำหนดนามแฝงโฮสต์ของเซิร์ฟเวอร์เป้าหมาย
- หากนามแฝงโฮสต์ของเซิร์ฟเวอร์เป้าหมายชี้ไปยังนามแฝงโฮสต์เสมือน แสดงว่าเป็นการเชื่อมโยงพร็อกซี ในกรณีนี้ คุณต้องทำซ้ำขั้นตอนทั้งหมดข้างต้นสำหรับพร็อกซีที่เชื่อมโยง จนกว่าจะทราบสาเหตุที่ทำให้เกิดข้อผิดพลาด 503 ไม่พร้อมให้บริการ ในกรณีเหล่านี้ ข้อผิดพลาด 503 ไม่พร้อมให้บริการอาจเกิดขึ้นในพร็อกซีที่เชื่อมโยงอื่นๆ ในขั้นตอนอื่นๆ ด้วย ซึ่งคุณสามารถวินิจฉัยได้โดยใช้ เพลย์บุ๊กนี้
- หากนามแฝงโฮสต์ของเซิร์ฟเวอร์เป้าหมายชี้ไปยังเซิร์ฟเวอร์แบ็กเอนด์ ให้ไปที่ ส่วนความละเอียด
บันทึกการเข้าถึง NGINX
นอกจากนี้ คุณยังดูบันทึกการเข้าถึง NGINX เพื่อตรวจสอบว่าเซิร์ฟเวอร์แบ็กเอนด์ส่งรหัสสถานะ 503 หรือไม่ ซึ่งจะเป็นประโยชน์อย่างยิ่งหากปัญหาเกิดขึ้นในอดีต หรือหากปัญหาเกิดขึ้นเป็นครั้งคราวและคุณไม่สามารถบันทึกการติดตามใน UI ได้ ทำตามขั้นตอนต่อไปนี้เพื่อดูข้อมูลนี้จากบันทึกการเข้าถึง NGINX
- ตรวจสอบบันทึกการเข้าถึง NGINX
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- ค้นหาข้อผิดพลาด 503 สำหรับพร็อกซี API ที่เฉพาะเจาะจงในช่วงเวลาที่กำหนด (หากปัญหาเกิดขึ้นในอดีต) หรือสำหรับคำขอที่ยังคงล้มเหลวด้วยข้อผิดพลาด 503
- หากมีข้อผิดพลาด 503 ให้ตรวจสอบว่าข้อผิดพลาดมาจากเซิร์ฟเวอร์แบ็กเอนด์หรือไม่
หากค่าของ X-Apigee-fault-source และ X-Apigee-fault-code ตรงกับ
ค่าที่แสดง
ในตารางด้านล่าง แสดงว่าข้อผิดพลาด 503 มาจากเซิร์ฟเวอร์แบ็กเอนด์
ส่วนหัวของการตอบกลับ ค่า X-Apigee-fault-source เป้าหมาย X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode นี่คือรายการตัวอย่างที่แสดงข้อผิดพลาด 503 ที่เกิดจากเซิร์ฟเวอร์เป้าหมาย
- ตรวจสอบพร็อกซี API ที่เฉพาะเจาะจงและตรวจสอบว่าคุณใช้ การเชื่อมโยงพร็อกซี หรือไม่ เช่น หากเซิร์ฟเวอร์เป้าหมาย/ปลายทางเป้าหมายไม่ได้เรียกใช้พร็อกซีอื่นใน Apigee หากคุณใช้ การเชื่อมโยงพร็อกซี คุณต้องทำซ้ำขั้นตอนทั้งหมดข้างต้นสำหรับพร็อกซีที่เชื่อมโยงจนกว่า จะทราบสาเหตุที่ทำให้เกิดข้อผิดพลาด 503 ไม่พร้อมให้บริการ ในกรณีเหล่านี้ ข้อผิดพลาด 503 ไม่พร้อมให้บริการอาจเกิดขึ้นในพร็อกซีที่เชื่อมโยงอื่นๆ ในขั้นตอนอื่นๆ ด้วย ซึ่งคุณสามารถวินิจฉัยได้โดยใช้เพลย์บุ๊กนี้
- หากยืนยันว่าคุณไม่ได้ใช้การเชื่อมโยงพร็อกซี และข้อผิดพลาด 503 มาจาก เซิร์ฟเวอร์แบ็กเอนด์ ให้ไปที่ส่วนความละเอียด
การเรียกเซิร์ฟเวอร์แบ็กเอนด์
คุณสามารถเรียกเซิร์ฟเวอร์แบ็กเอนด์โดยตรงและยืนยันว่าคุณได้รับการตอบกลับ 503 ไม่พร้อมให้บริการแบบเดียวกับที่ได้รับเมื่อมีการส่งคำขอผ่าน Apigee Edge
- ตรวจสอบว่าคุณมีส่วนหัว พารามิเตอร์การค้นหา และข้อมูลเข้าสู่ระบบทั้งหมดที่ ต้องส่งไปยังเซิร์ฟเวอร์แบ็กเอนด์เป็นส่วนหนึ่งของคำขอ
- หากบริการแบ็กเอนด์เข้าถึงได้แบบสาธารณะ คุณสามารถใช้คำสั่ง curl, Postman หรือไคลเอ็นต์ REST อื่นๆ และเรียกใช้ API ของเซิร์ฟเวอร์แบ็กเอนด์โดยตรง
- หากเซิร์ฟเวอร์แบ็กเอนด์เข้าถึงได้จาก Message Processor เท่านั้น คุณสามารถใช้คำสั่ง curl, Postman หรือไคลเอ็นต์ REST อื่นๆ และเรียกใช้ API ของเซิร์ฟเวอร์แบ็กเอนด์โดยตรงจาก Message Processor
- ตรวจสอบว่าบริการแบ็กเอนด์แสดงข้อผิดพลาด 503 ไม่พร้อมให้บริการจริง
ความละเอียด
หากคุณยืนยันว่าข้อผิดพลาด 503 มาจากเซิร์ฟเวอร์แบ็กเอนด์ คุณสามารถทำสิ่งต่อไปนี้เพื่อแก้ไขปัญหา
- หากปัญหาเกิดจากเซิร์ฟเวอร์แบ็กเอนด์หยุดทำงานเพื่อบำรุงรักษา คุณสามารถนำเซิร์ฟเวอร์แบ็กเอนด์กลับมาออนไลน์ได้หลังจากช่วงเวลาบำรุงรักษา
- หากปัญหาเกิดจากเซิร์ฟเวอร์แบ็กเอนด์ทำงานหนักเกินไป ให้ แก้ไขปัญหาหากคุณมีสิทธิ์เข้าถึงเซิร์ฟเวอร์แบ็กเอนด์ หรือคุณอาจต้องทำงานร่วมกับทีมเซิร์ฟเวอร์แบ็กเอนด์เพื่อแก้ไขปัญหา
วินิจฉัยปัญหาโดยใช้การตรวจสอบ API
การตรวจสอบ API ช่วยให้คุณแยก พื้นที่ที่มีปัญหาได้อย่างรวดเร็วเพื่อวินิจฉัยปัญหาเกี่ยวกับข้อผิดพลาด ประสิทธิภาพ และเวลาในการตอบสนอง รวมถึงแหล่งที่มาของปัญหา เช่น แอปของนักพัฒนาแอป พร็อกซี API เป้าหมายแบ็กเอนด์ หรือแพลตฟอร์ม API
ดู สถานการณ์ตัวอย่างที่แสดงวิธีแก้ปัญหา 5xx กับ API โดยใช้การตรวจสอบ API เช่น คุณอาจต้องการตั้งค่าการแจ้งเตือนเพื่อรับการแจ้งเตือนเมื่อจำนวนข้อผิดพลาด messaging.adaptors.http.flow.ErrorResponseCode เกินเกณฑ์ที่กำหนด
ข้อมูลการวินิจฉัยที่ต้องรวบรวม
หากยังพบปัญหาเดิมอยู่แม้จะทำตามวิธีการข้างต้นแล้ว โปรดรวบรวมข้อมูลการวินิจจฉัยต่อไปนี้ แล้วติดต่อ ทีมสนับสนุนของ Apigee
หากคุณเป็นผู้ใช้ Public Cloud โปรดระบุข้อมูลต่อไปนี้
- ชื่อองค์กร
- ชื่อสภาพแวดล้อม
- ชื่อพร็อกซี API
- คำสั่ง curl ที่สมบูรณ์เพื่อจำลองข้อผิดพลาด 503
- ไฟล์การติดตามที่มีคำขอซึ่งมีข้อผิดพลาด 503 ไม่พร้อมให้บริการ
- หากข้อผิดพลาด 503 ไม่เกิดขึ้นในปัจจุบัน โปรดระบุช่วงเวลาพร้อมข้อมูลเขตเวลา เมื่อข้อผิดพลาด 503 เกิดขึ้นในอดีต
หากคุณเป็นผู้ใช้ Private Cloud โปรดระบุข้อมูลต่อไปนี้
- ข้อความแสดงข้อผิดพลาดทั้งหมดที่พบสำหรับคำขอที่ล้มเหลว
- ชื่อองค์กร ชื่อสภาพแวดล้อม และชื่อพร็อกซี API ที่คุณพบข้อผิดพลาด 503
- ชุดรวมพร็อกซี API
- ไฟล์การติดตามที่มีคำขอซึ่งมีข้อผิดพลาด 503 ไม่พร้อมให้บริการ
- บันทึกการเข้าถึง NGINX
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- บันทึก Message Processor
/opt/apigee/var/log/edge-message-processor/logs/system.log
- ระยะเวลาพร้อมข้อมูลเขตเวลาเมื่อข้อผิดพลาด 503 เกิดขึ้น