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