503 บริการไม่พร้อมใช้งาน - NoActiveTargets

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่ เอกสารประกอบของ Apigee X
info

วิดีโอ

ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาด 503 ได้ในวิดีโอต่อไปนี้

วิดีโอ คำอธิบาย
แก้ไขปัญหาและแก้ข้อผิดพลาด 503 ไม่พร้อมให้บริการ - NoActiveTargets ดูข้อมูลเกี่ยวกับสิ่งต่อไปนี้
  • ความสำคัญของเซิร์ฟเวอร์เป้าหมายและการตรวจสอบประสิทธิภาพการทำงาน
  • การแก้ปัญหาและแก้ข้อผิดพลาด 503 ไม่พร้อมให้บริการ - NoActiveTargets แบบเรียลไทม์

ลักษณะปัญหา

แอปพลิเคชันไคลเอ็นต์ได้รับรหัสสถานะการตอบกลับ HTTP 503 พร้อม ข้อความ ไม่พร้อมให้บริการ และรหัสข้อผิดพลาด 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 ไม่พร้อมให้บริการ พร้อมรหัสข้อผิดพลาด NoActiveTargets เมื่อใช้เซิร์ฟเวอร์เป้าหมายอย่างน้อย 1 รายการในการกำหนดค่าปลายทางเป้าหมายในพร็อกซี API

ตารางต่อไปนี้แสดงสาเหตุที่เป็นไปได้ของการตอบกลับ 503 ไม่พร้อมให้บริการ พร้อมรหัสข้อผิดพลาด 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 ไม่พร้อมให้บริการ พร้อมรหัสข้อผิดพลาด NoActiveTargets.

การวินิจฉัย

  1. ระบุชื่อเซิร์ฟเวอร์เป้าหมายที่ใช้ในการกำหนดค่าปลายทางเป้าหมาย ที่เฉพาะเจาะจงของพร็อกซี API ที่ไม่สำเร็จโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
    1. หากมีปลายทางเป้าหมายเดียว ให้ตรวจสอบปลายทางเป้าหมายนั้น
    2. หากมีปลายทางเป้าหมายหลายรายการและคุณไม่แน่ใจว่าปลายทางใดมีเซิร์ฟเวอร์เป้าหมายที่ปิดใช้อยู่ ให้ทำตามขั้นตอนด้านล่าง
      1. เปิดใช้เซสชันการติดตาม เรียก API และจำลองปัญหา - 503 ไม่พร้อมให้บริการ
      2. จากการติดตาม ให้ไปที่ Target Request Flow Started และระบุชื่อปลายทางเป้าหมายตามที่แสดงด้านล่าง
      3. กำหนดชื่อปลายทางเป้าหมายจากการติดตาม

  2. เมื่อระบุปลายทางเป้าหมายแล้ว ให้รับชื่อเซิร์ฟเวอร์เป้าหมายที่ใช้จากการกำหนดค่าปลายทางเป้าหมายตามที่แสดงในตัวอย่างด้านล่าง
    <TargetEndpoint name="default">>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="demo-target" />
        </LoadBalancer>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
          

    ในตัวอย่างด้านบน มีเซิร์ฟเวอร์เป้าหมายเดียวชื่อ demo-target

  3. รับคำจำกัดความของเซิร์ฟเวอร์เป้าหมายแต่ละรายการที่ใช้ในปลายทางเป้าหมายโดยใช้ UI ของ Edge หรือการเรียก API ของ Edge

    UI ของ Edge

    วิธีรับคำจำกัดความโดยใช้ UI ของ Edge

    1. ไปที่ผู้ดูแลระบบ > สภาพแวดล้อม > เซิร์ฟเวอร์เป้าหมาย
    2. เลือกสภาพแวดล้อมที่เฉพาะเจาะจงซึ่งคุณเห็นข้อผิดพลาด
    3. ค้นหาชื่อเซิร์ฟเวอร์เป้าหมายที่เฉพาะเจาะจงเพื่อรับคำจำกัดความของเซิร์ฟเวอร์เป้าหมาย

      ตัวอย่างเช่น พิมพ์ชื่อเซิร์ฟเวอร์เป้าหมาย demo-target แล้วคุณจะเห็นคำจำกัดความตามที่แสดงด้านล่าง

      ชื่อเซิร์ฟเวอร์เป้าหมายและสถานะเปิดใช้/ปิดใช้

      โปรดทราบว่าเซิร์ฟเวอร์เป้าหมาย demo-target มีชื่อแทนโฮสต์ หมายเลขพอร์ต และเปิดใช้ SSL อย่างไรก็ตาม เซิร์ฟเวอร์เป้าหมายเองปิดใช้อยู่ ซึ่งระบุโดยองค์ประกอบ ENABLED ที่เป็นสีเทา

    API ของ Edge

    วิธีรับคำจำกัดความโดยใช้ API ของ Edge

    ใช้ API รับ TargetServer เพื่อรับคำจำกัดความของเซิร์ฟเวอร์เป้าหมาย

    เอาต์พุตคำจำกัดความของเซิร์ฟเวอร์เป้าหมาย

    <TargetServer name="demo-target">
      <Host>demo-target.apigee.net</Host>
      <Port>443</Port>
      <IsEnabled>false</IsEnabled>
      <SSLInfo>
          <Enabled>true</Enabled>
      </SSLInfo>
    </TargetServer>
              

    เอาต์พุต API ของ Apigee แสดงว่าเซิร์ฟเวอร์เป้าหมาย demo-target ปิดใช้อยู่ เนื่องจากองค์ประกอบ IsEnabled ตั้งค่าเป็น "เท็จ"

    เนื่องจากเซิร์ฟเวอร์เป้าหมายปิดใช้อยู่ Message Processor จะส่ง 503 ไม่พร้อมให้บริการ พร้อมรหัสข้อผิดพลาด NoActiveTargets ทันทีเพื่อเป็นการตอบกลับไคลเอ็นต์

ความละเอียด

ตรวจสอบว่าเซิร์ฟเวอร์เป้าหมายที่เฉพาะเจาะจงซึ่งใช้ในการกำหนดค่าปลายทางเป้าหมายของพร็อกซี API เปิดใช้อยู่เสมอ

UI ของ Edge

  1. ไปที่ผู้ดูแลระบบ > สภาพแวดล้อม > เซิร์ฟเวอร์เป้าหมาย
  2. เลือกสภาพแวดล้อมที่เฉพาะเจาะจงซึ่งคุณเห็นข้อผิดพลาด
  3. ค้นหาชื่อเซิร์ฟเวอร์เป้าหมายที่เฉพาะเจาะจงเพื่อรับคำจำกัดความ
  4. เลือกเซิร์ฟเวอร์เป้าหมายที่เฉพาะเจาะจง แล้วคลิกแก้ไข
  5. เลือกช่องทำเครื่องหมายเปิดใช้
  6. คลิกอัปเดต

API ของ Edge

ใช้ 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 ตัวอย่างเช่น คุณอาจต้องการตั้งค่าการแจ้งเตือนให้คุณได้รับแจ้งเมื่อจำนวนข้อผิดพลาด messaging.adaptors.http.flow.NoActiveTargets เกินเกณฑ์ที่กำหนด

ข้อมูลการวินิจฉัยที่ต้องรวบรวม

หากปัญหายังคงอยู่แม้หลังจากทำตามวิธีการข้างต้นแล้ว โปรดรวบรวมข้อมูลการวินิจฉัยต่อไปนี้ ติดต่อและแชร์ข้อมูลดังกล่าวกับทีมสนับสนุนของ Apigee

  1. หากคุณเป็นผู้ใช้ Public Cloud โปรดระบุข้อมูลต่อไปนี้
    1. ชื่อองค์กร
    2. ชื่อสภาพแวดล้อม
    3. ชื่อพร็อกซี API
    4. คำสั่ง curl ที่สมบูรณ์เพื่อจำลองข้อผิดพลาด
    5. ไฟล์การติดตามที่มีคำขอพร้อมข้อผิดพลาด 503 ไม่พร้อมให้บริการพร้อมรหัสข้อผิดพลาด NoActiveTargets
  2. หากคุณเป็นผู้ใช้ Private Cloud โปรดระบุข้อมูลต่อไปนี้
    1. ข้อความแสดงข้อผิดพลาดทั้งหมดที่พบ
    2. ชื่อสภาพแวดล้อม
    3. แพ็กเกจพร็อกซี API
    4. ไฟล์การติดตามที่มีคำขอพร้อมข้อผิดพลาด 503 ไม่พร้อมให้บริการพร้อมรหัสข้อผิดพลาด NoActiveTargets
    5. บันทึกการเข้าถึง NGINX

      (/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log)

    6. บันทึก Message Processor

      (/opt/apigee/var/log/edge-message-processor/logs/system.log)