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

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

วิดีโอ

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

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

สาเหตุ คำอธิบาย ใครสามารถทำขั้นตอนการแก้ปัญหา
เซิร์ฟเวอร์เป้าหมายปิดใช้อยู่ เซิร์ฟเวอร์เป้าหมายที่ระบุในการกำหนดค่าปลายทางเป้าหมายปิดใช้อยู่ ผู้ใช้ Edge สาธารณะและ Private Cloud
ข้อผิดพลาดในการเชื่อมต่อเนื่องจากการแปลง DNS ไม่ถูกต้อง การแปลง DNS ของเซิร์ฟเวอร์เป้าหมายส่งผลให้ที่อยู่ IP ไม่ถูกต้องและทําให้เกิดข้อผิดพลาดในการเชื่อมต่อ ผู้ใช้ Edge Private Cloud
ข้อผิดพลาดในการเชื่อมต่อ ปัญหาด้านเครือข่ายหรือการเชื่อมต่อทำให้ไคลเอ็นต์เชื่อมต่อกับเซิร์ฟเวอร์ไม่ได้ ผู้ใช้ Edge Private Cloud
ชื่อแทนโฮสต์เป้าหมายไม่ถูกต้อง โฮสต์ของเซิร์ฟเวอร์เป้าหมายที่ระบุไม่ถูกต้องหรือมีอักขระที่ไม่ต้องการ (เช่น การเว้นวรรค) ผู้ใช้ Edge สาธารณะและ Private Cloud
ความล้มเหลวในแฮนด์เชค SSL แฮนด์เชค TLS/SSL ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ล้มเหลว ผู้ใช้ Edge สาธารณะและ Private Cloud
ไม่ผ่านการตรวจสอบประสิทธิภาพการทำงาน การตรวจสอบประสิทธิภาพการทำงานที่กำหนดค่าไว้เพื่อตรวจสอบประสิทธิภาพของเซิร์ฟเวอร์เป้าหมายอาจล้มเหลวเนื่องจากสาเหตุบางอย่าง ผู้ใช้ Edge Private Cloud

สาเหตุ: เซิร์ฟเวอร์เป้าหมายถูกปิดใช้

ถ้าเซิร์ฟเวอร์เป้าหมายทั้งหมดที่ระบุไว้ในการกำหนดค่าปลายทางเป้าหมายถูกปิดใช้งาน รับการตอบกลับ 503 Service Unavailable พร้อมรหัสข้อผิดพลาด NoActiveTargets

การวินิจฉัย

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

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

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

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

    UI ของ Edge

    วิธีดูคำจำกัดความโดยใช้ Edge UI

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

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

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

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

    Edge API

    วิธีดูคำจำกัดความโดยใช้ 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 ไม่พร้อมใช้งานที่มีรหัสข้อผิดพลาด NoActiveTargets ในทันทีเป็น การตอบกลับไปยังไคลเอ็นต์

ความละเอียด

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

UI ของ Edge

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

Edge API

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

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

    6. บันทึกของตัวประมวลผลข้อความ

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