คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
วิดีโอ
ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาด 503 ได้ในวิดีโอต่อไปนี้
วิดีโอ | คำอธิบาย |
---|---|
แก้ปัญหาและแก้ไขบริการ 503 ไม่พร้อมใช้งาน - NoActiveTargets | ดูข้อมูลเกี่ยวกับสิ่งต่อไปนี้
|
ลักษณะปัญหา
แอปพลิเคชันไคลเอ็นต์จะได้รับรหัสสถานะการตอบกลับ HTTP 503 พร้อมด้วยข้อความ Service Unavailable และรหัสข้อผิดพลาด NoActiveTargets สำหรับคำขอพร็อกซี API
ข้อความแสดงข้อผิดพลาด
คุณจะเห็นการตอบกลับข้อผิดพลาดต่อไปนี้
HTTP/1.1 503 Service Unavailable
คุณจะเห็นข้อความแสดงข้อผิดพลาดต่อไปนี้ในการตอบกลับ HTTP
{ "fault": { "faultstring": "The Service is temporarily unavailable", "detail": { "errorcode": "messaging.adaptors.http.flow.NoActiveTargets" } } }
สาเหตุที่เป็นไปได้
โดยทั่วไปแล้ว การตอบกลับ HTTP เป็น 503 Service Unavailable ที่มีรหัสข้อผิดพลาด NoActiveTargets เมื่อคุณใช้เซิร์ฟเวอร์เป้าหมายอย่างน้อย 1 รายการในการกำหนดค่าปลายทางปลายทางในพร็อกซี API
ตารางต่อไปนี้แสดงสาเหตุที่เป็นไปได้สำหรับการตอบสนอง 503 Service Unavailable ที่มีรหัสข้อผิดพลาด NoActiveTargets
สาเหตุ | คำอธิบาย | ผู้ที่มีสิทธิ์ทำตามขั้นตอนการแก้ปัญหา |
---|---|---|
ปิดใช้เซิร์ฟเวอร์เป้าหมาย | เซิร์ฟเวอร์เป้าหมายที่ระบุไว้ในการกำหนดค่าปลายทางปลายทางปิดใช้อยู่ | ผู้ใช้ Edge Public และ Private Cloud |
ข้อผิดพลาดในการเชื่อมต่อเนื่องจากการแปลง DNS ไม่ถูกต้อง | การแปลง DNS ของเซิร์ฟเวอร์เป้าหมายส่งผลให้ที่อยู่ IP ไม่ถูกต้องที่นำไปสู่ข้อผิดพลาดในการเชื่อมต่อ | ผู้ใช้ Edge Private Cloud |
ข้อผิดพลาดในการเชื่อมต่อ | ปัญหาเกี่ยวกับเครือข่ายหรือการเชื่อมต่อทำให้ไคลเอ็นต์เชื่อมต่อกับเซิร์ฟเวอร์ไม่ได้ | ผู้ใช้ Edge Private Cloud |
ชื่อแทนโฮสต์เป้าหมายไม่ถูกต้อง | โฮสต์ของเซิร์ฟเวอร์เป้าหมายที่ระบุไม่ถูกต้องหรือมีอักขระที่ไม่พึงประสงค์ (เช่น การเว้นวรรค) | ผู้ใช้ Edge Public และ Private Cloud |
แฮนด์เชค SSL ไม่สำเร็จ | แฮนด์เชค TLS/SSL ระหว่างไคลเอ็นต์กับเซิร์ฟเวอร์ล้มเหลว | ผู้ใช้ Edge Public และ Private Cloud |
การตรวจสอบประสิทธิภาพการทำงานล้มเหลว | การตรวจสอบประสิทธิภาพการทำงานที่กำหนดค่าไว้เพื่อตรวจสอบประสิทธิภาพการทำงานของเซิร์ฟเวอร์เป้าหมายอาจล้มเหลวเนื่องจากสาเหตุบางอย่าง | ผู้ใช้ Edge Private Cloud |
สาเหตุ: เซิร์ฟเวอร์เป้าหมายถูกปิดใช้
หากปิดใช้เซิร์ฟเวอร์เป้าหมายทั้งหมดที่ระบุในการกำหนดค่าปลายทางปลายทางไว้ คุณจะได้รับการตอบกลับ 503 Service Unavailable พร้อมรหัสข้อผิดพลาด NoActiveTargets
การวินิจฉัย
- ระบุชื่อของเซิร์ฟเวอร์เป้าหมายที่ใช้ในการกำหนดค่าปลายทางเป้าหมายที่เฉพาะเจาะจงของพร็อกซี API ที่ล้มเหลว โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
- หากมีปลายทางเป้าหมายเดียว ให้ตรวจสอบปลายทางเป้าหมายนั้นๆ
- หากมีปลายทางเป้าหมายหลายรายการและไม่แน่ใจว่าปลายทางใดที่ปิดใช้เซิร์ฟเวอร์เป้าหมาย ให้ทำตามขั้นตอนต่อไปนี้
- เปิดใช้เซสชันการติดตาม ทำการเรียก API และทำให้เกิดปัญหาซ้ำ - 503 Service Unavailable
- จากการติดตาม ให้ไปที่เริ่มต้นโฟลว์คำขอเป้าหมาย แล้วกำหนดชื่อของปลายทางเป้าหมายดังที่แสดงด้านล่าง
- เมื่อระบุปลายทางเป้าหมายได้แล้ว ให้รับชื่อเซิร์ฟเวอร์เป้าหมายที่ใช้จากการกำหนดค่าปลายทางเป้าหมายดังที่แสดงในตัวอย่างด้านล่าง
<TargetEndpoint name="default">> <HTTPTargetConnection> <LoadBalancer> <Server name="demo-target" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
ในตัวอย่างข้างต้น มีเซิร์ฟเวอร์เป้าหมายเดียวที่ชื่อ demo-target
- ดูคำจำกัดความของแต่ละเซิร์ฟเวอร์เป้าหมายที่ใช้ในปลายทางเป้าหมายโดยใช้การเรียก Edge UI หรือ Edge API
UI ของ Edge
วิธีดูคำจำกัดความโดยใช้ Edge UI
- ไปที่ผู้ดูแลระบบ > สภาพแวดล้อม > เซิร์ฟเวอร์เป้าหมาย
- เลือกสภาพแวดล้อมเฉพาะที่คุณเห็นความล้มเหลว
- ค้นหาชื่อเซิร์ฟเวอร์เป้าหมายที่ต้องการเพื่อดูคำจำกัดความเซิร์ฟเวอร์เป้าหมาย
ตัวอย่างเช่น พิมพ์ชื่อเซิร์ฟเวอร์เป้าหมาย
demo-target
แล้วคุณจะเห็นคำจำกัดความดังที่แสดงด้านล่างโปรดสังเกตว่าเป้าหมายการสาธิตของเซิร์ฟเวอร์เป้าหมายมีชื่อแทนโฮสต์ พอร์ต # และ SSL เปิดใช้งานอยู่ แต่เซิร์ฟเวอร์เป้าหมายเองจะปิดใช้ อยู่ ซึ่งระบุโดยองค์ประกอบที่ ENABLED เป็นสีเทา
API ของ Edge
วิธีดูคำจำกัดความโดยใช้ Edge API
ใช้ รับ TargetServer API เพื่อรับการกำหนดเซิร์ฟเวอร์เป้าหมาย
เอาต์พุตคำจำกัดความเซิร์ฟเวอร์เป้าหมาย
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>false</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
เอาต์พุตของ Apigee API แสดงให้เห็นว่าเป้าหมายสาธิตของเซิร์ฟเวอร์เป้าหมายปิดใช้อยู่เนื่องจากการตั้งค่าองค์ประกอบ IsEnabled เป็น "เท็จ"
เนื่องจากเซิร์ฟเวอร์เป้าหมายปิดใช้อยู่ ผู้ประมวลผลข้อความจะส่ง 503 Service Unavailable พร้อมรหัสข้อผิดพลาด NoActiveTargets เป็นการตอบกลับไคลเอ็นต์
ความละเอียด
ตรวจสอบว่าเซิร์ฟเวอร์เป้าหมายที่ใช้ในการกำหนดค่าปลายทางเป้าหมายของพร็อกซี API จะเปิดใช้อยู่เสมอ
UI ของ Edge
- ไปที่ผู้ดูแลระบบ > สภาพแวดล้อม > เซิร์ฟเวอร์เป้าหมาย
- เลือกสภาพแวดล้อมเฉพาะที่คุณเห็นความล้มเหลว
- ค้นหาชื่อเซิร์ฟเวอร์เป้าหมายที่ต้องการเพื่อดูคำจำกัดความ
- เลือกเซิร์ฟเวอร์เป้าหมายที่ต้องการแล้วคลิกแก้ไข
- เลือกช่องทำเครื่องหมายเปิดใช้
- คลิกอัปเดต
API ของ Edge
ใช้ Update a Target Server API เพื่ออัปเดตคําจํากัดความของเซิร์ฟเวอร์เป้าหมายและตรวจสอบว่า IsEnabled ได้รับการตั้งค่าเป็น true ในเพย์โหลดคำขอของ API ดังที่แสดงด้านล่าง
<TargetServer name="demo-target"> <Host>demo-target.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
หากยังคงพบปัญหาอยู่ ให้ไปที่ต้องรวบรวมข้อมูลการวินิจฉัย
วินิจฉัยปัญหาโดยใช้การตรวจสอบ API
การตรวจสอบ API ช่วยให้คุณแยกส่วนที่เป็นปัญหาได้อย่างรวดเร็วเพื่อวิเคราะห์ปัญหาเกี่ยวกับข้อผิดพลาด ประสิทธิภาพ และเวลาในการตอบสนองและแหล่งที่มา เช่น แอปของนักพัฒนาซอฟต์แวร์, พร็อกซี API, เป้าหมายแบ็กเอนด์ หรือแพลตฟอร์ม API
ดูสถานการณ์ตัวอย่างที่แสดงวิธีแก้ปัญหา 5xx เกี่ยวกับ API โดยใช้ API Monitoring ตัวอย่างเช่น คุณอาจต้องการตั้งค่าการแจ้งเตือนเพื่อรับการแจ้งเตือนเมื่อจำนวนข้อผิดพลาด messaging.adaptors.http.flow.NoActiveTargets
เกินเกณฑ์หนึ่งๆ
ต้องรวบรวมข้อมูลการวินิจฉัย
หากปัญหายังคงอยู่แม้ว่าจะทำตามวิธีการข้างต้นแล้ว โปรดรวบรวมข้อมูลการวินิจฉัยต่อไปนี้ ติดต่อและแชร์กับทีมสนับสนุนของ Apigee
- หากคุณเป็นผู้ใช้ Public Cloud โปรดระบุข้อมูลต่อไปนี้
- ชื่อองค์กร
- ชื่อสภาพแวดล้อม
- ชื่อพร็อกซี API
- ใช้คำสั่ง curl เพื่อจำลองข้อผิดพลาด
- ไฟล์การติดตามที่มีคำขอที่มี 503 Service Unavailable โดยมีรหัสข้อผิดพลาด NoActiveTargets
- หากคุณเป็นผู้ใช้ Private Cloud ให้ระบุข้อมูลต่อไปนี้
- สังเกตข้อความแสดงข้อผิดพลาดให้เสร็จสมบูรณ์
- ชื่อสภาพแวดล้อม
- กลุ่มพร็อกซี API
- ไฟล์การติดตามที่มีคำขอที่มี 503 Service Unavailable โดยมีรหัสข้อผิดพลาด NoActiveTargets
- บันทึกการเข้าถึง NGINX
(
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
) - บันทึกตัวประมวลผลข้อความ
(
/opt/apigee/var/log/edge-message-processor/logs/system.log
)