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 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

การวินิจฉัย

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

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

      โปรดสังเกตว่าเป้าหมายการสาธิตของเซิร์ฟเวอร์เป้าหมายมีชื่อแทนโฮสต์ พอร์ต # และ 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

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

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

  1. หากคุณเป็นผู้ใช้ Public Cloud โปรดระบุข้อมูลต่อไปนี้
    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)