503 الخدمة غير متوفرة - NoActiveTargets

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

الفيديوهات

يمكنك الاطّلاع على الفيديوهات التالية لمزيد من المعلومات حول أخطاء 503:

فيديو الوصف
تحديد المشاكل وحلّها في الخطأ "503: الخدمة غير متاحة - NoActiveTargets" تعرَّف على ما يلي:
  • أهمية خوادم الوجهة وأدوات مراقبة الحالة
  • تحديد المشاكل وحلّها في الخطأ "503: الخدمة غير متاحة - NoActiveTargets" في الوقت الفعلي

المشكلة

يتلقّى تطبيق العميل رمز حالة استجابة HTTP 503 مع الرسالة الخدمة غير متاحة ورمز الخطأ NoActiveTargets لطلبات الخادم الوكيل لواجهة برمجة التطبيقات.

رسالة الخطأ

ستظهر لك استجابة الخطأ التالية:

HTTP/1.1 503 Service Unavailable
  

ستظهر لك رسالة الخطأ التالية في استجابة HTTP:

{
   "fault": {
      "faultstring": "The Service is temporarily unavailable",
      "detail": {
           "errorcode": "messaging.adaptors.http.flow.NoActiveTargets"
       }
    }
}
  

الأسباب المحتملة

تظهر عادةً استجابة HTTP 503: الخدمة غير متاحة مع رمز الخطأ NoActiveTargets عند استخدام خادم وجهة واحد أو أكثر في إعداد نقطة نهاية الوجهة في الخادم الوكيل لواجهة برمجة التطبيقات.

يسرد الجدول التالي الأسباب المحتملة لظهور الاستجابة 503: الخدمة غير متاحة مع رمز الخطأ NoActiveTargets:

السبب الوصف المستخدمون الذين يمكنهم تنفيذ خطوات تحديد المشاكل وحلّها
خادم الوجهة غير مفعَّل تم إيقاف خادم الوجهة المحدّد في إعداد نقطة نهاية الوجهة. مستخدمو Edge Public Cloud وPrivate Cloud
أخطاء الاتصال بسبب تعذُّر التحويل باستخدام نظام أسماء النطاقات (DNS) أدى التحويل باستخدام نظام أسماء النطاقات (DNS) لخادم الوجهة إلى عناوين IP غير صالحة تؤدي إلى أخطاء في الاتصال. مستخدمو Edge Private Cloud
أخطاء الاتصال تمنع مشاكل الشبكة أو الاتصال العميل من الاتصال بالخادم. مستخدمو Edge Private Cloud
الاسم المستعار غير الصحيح لمضيف الوجهة اسم مضيف خادم الوجهة المحدّد غير صحيح أو يحتوي على أحرف غير مرغوب فيها (مثل مسافة). مستخدمو Edge Public Cloud وPrivate Cloud
أخطاء تأكيد الاتصال عبر طبقة المقابس الآمنة (SSL) تعذّر تأكيد الاتصال عبر بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة (SSL) بين العميل والخادم. مستخدمو Edge Public Cloud وPrivate Cloud
أخطاء التحقّق من الحالة قد تفشل عمليات التحقّق من الحالة التي تم ضبطها للتحقّق من حالة خادم الوجهة لسبب ما. مستخدمو Edge Private Cloud

السبب: خادم الوجهة غير مفعَّل

إذا تم إيقاف جميع خوادم الوجهة المحدّدة في إعداد نقطة نهاية الوجهة، ستظهر لك الاستجابة 503: الخدمة غير متاحة مع رمز الخطأ NoActiveTargets.

التشخيص

  1. حدِّد اسم خادم الوجهة المستخدَم في إعداد نقطة نهاية الوجهة المحدّدة للخادم الوكيل لواجهة برمجة التطبيقات الذي يتعذّر تنفيذه بإحدى الطرق التالية:
    1. إذا كانت هناك نقطة نهاية وجهة واحدة، تحقَّق من نقطة نهاية الوجهة هذه.
    2. إذا كانت هناك نقاط نهاية وجهة متعددة ولم تكن متأكدًا من نقطة نهاية الوجهة التي تم إيقاف خادم الوجهة فيها، اتّبِع الخطوات التالية:
      1. فعِّل جلسة التتبُّع، ونفِّذ طلب البيانات من واجهة برمجة التطبيقات، وكرِّر المشكلة - 503: الخدمة غير متاحة.
      2. من التتبُّع، انتقِل إلى بدء مسار طلب الوجهة وحدِّد اسم نقطة نهاية الوجهة كما هو موضّح أدناه:
      3. تحديد اسم نقطة النهاية المستهدَفة من التتبُّع

  2. بعد تحديد نقطة نهاية الوجهة، احصل على اسم خادم الوجهة المستخدَم من إعداد نقطة نهاية الوجهة كما هو موضّح في المثال أدناه:
    <TargetEndpoint name="default">>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="demo-target" />
        </LoadBalancer>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
          

    في المثال أعلاه، هناك خادم وجهة واحد باسم demo-target.

  3. احصل على تعريف كل خادم من خوادم الوجهة المستخدَمة في نقطة نهاية الوجهة باستخدام واجهة مستخدم Edge أو طلب بيانات من واجهة برمجة تطبيقات Edge.

    واجهة مستخدم Edge

    للحصول على التعريف باستخدام واجهة مستخدم Edge:

    1. انتقِل إلى المشرف > البيئات > خوادم الوجهة.
    2. اختَر البيئة المحدّدة التي تظهر فيها المشكلة.
    3. ابحث عن اسم خادم الوجهة المحدّد للحصول على تعريف خادم الوجهة.

      على سبيل المثال، اكتب اسم خادم الوجهة demo-target وسيظهر لك تعريفه كما هو موضّح أدناه:

      اسم الخادم المستهدف وحالة التفعيل/الإيقاف

      لاحظ هنا أنّ خادم الوجهة demo-target يحتوي على اسم مستعار للمضيف ورقم منفذ وتم تفعيل طبقة المقابس الآمنة (SSL). ومع ذلك، فإنّ خادم الوجهة نفسه غير مفعَّل ، ويشير إلى ذلك تعتيم العنصر ENABLED.

    واجهة برمجة تطبيقات Edge

    للحصول على التعريف باستخدام واجهة برمجة تطبيقات Edge:

    استخدِم Get 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 أنّ خادم الوجهة demo-target هو غير مفعَّل لأنّ العنصر IsEnabled تم ضبطه على "false".

    بما أنّ خادم الوجهة غير مفعَّل، سيرسل معالج الرسائل على الفور الاستجابة 503: الخدمة غير متاحة مع رمز الخطأ NoActiveTargets إلى العميل.

الدقة

تأكَّد من أنّ خوادم الوجهة المحدّدة المستخدَمة في إعداد نقطة نهاية الوجهة للخادم الوكيل لواجهة برمجة التطبيقات مفعَّلة دائمًا.

واجهة مستخدم Edge

  1. انتقِل إلى المشرف > البيئات > خوادم الوجهة.
  2. اختَر البيئة المحدّدة التي تظهر فيها المشكلة.
  3. ابحث عن اسم خادم الوجهة المحدّد للحصول على تعريفه.
  4. اختَر خادم الوجهة المحدّد، ثم انقر على تعديل.
  5. ضَع علامة في مربّع الاختيار مفعَّل.
  6. انقر على تعديل.

واجهة برمجة تطبيقات Edge

استخدِم Update a Target Server API لتعديل تعريف خادم الوجهة وتأكَّد من ضبط IsEnabled على true في حمولة طلب واجهة برمجة التطبيقات كما هو موضّح أدناه:

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

إذا استمرت المشكلة، انتقِل إلى جمع معلومات التشخيص الضرورية.

تشخيص المشاكل باستخدام "مراقبة واجهة برمجة التطبيقات"

تتيح لك ميزة "مراقبة واجهة برمجة التطبيقات" عزل مناطق المشاكل بسرعة لتشخيص الأخطاء ومشاكل الأداء والمدة الزمنية المستغرَقة ومصدرها، مثل تطبيقات المطوّرين أو الخوادم الوكيلة لواجهة برمجة التطبيقات أو نقاط نهاية الوجهة الخلفية أو منصة واجهة برمجة التطبيقات.

اتّبِع سيناريو نموذجًا يوضّح كيفية تحديد المشاكل وحلّها في الأخطاء من فئة 5xx في واجهات برمجة التطبيقات باستخدام "مراقبة واجهة برمجة التطبيقات". على سبيل المثال، قد تريد إعداد تنبيه ليتم إعلامك عندما يتجاوز عدد الأخطاء messaging.adaptors.http.flow.NoActiveTargets حدًا معيّنًا.

جمع معلومات التشخيص الضرورية

إذا استمرت المشكلة حتى بعد اتّباع التعليمات أعلاه، يُرجى جمع معلومات التشخيص التالية. تواصل مع فريق دعم Apigee وشارِك هذه المعلومات معه:

  1. إذا كنت من مستخدمي Public Cloud، قدِّم المعلومات التالية:
    1. اسم المؤسسة
    2. اسم البيئة
    3. اسم الخادم الوكيل لواجهة برمجة التطبيقات
    4. أمر curl الكامل لإعادة إنتاج الخطأ
    5. ملف التتبُّع الذي يحتوي على الطلبات التي تتضمّن الخطأ "503: الخدمة غير متاحة" مع رمز الخطأ NoActiveTargets
  2. إذا كنت من مستخدمي Private Cloud، قدِّم المعلومات التالية:
    1. رسالة الخطأ الكاملة التي ظهرت
    2. اسم البيئة
    3. حزمة الخادم الوكيل لواجهة برمجة التطبيقات
    4. ملف التتبُّع الذي يحتوي على الطلبات التي تتضمّن الخطأ "503: الخدمة غير متاحة" مع رمز الخطأ 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)