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

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

الفيديوهات الطويلة

شاهد الفيديو التالي لمعرفة المزيد من المعلومات حول حل أخطاء 503: عدم توفُّر الخدمة.

حملة فيديو الوصف
خطأ "503" في عدم توفُّر الخدمة من خادم الخلفية تعرَّف على ما يلي:
  • مقدمة حول الخطأ 503 Service Unavailable في Apigee Edge
  • تحديد المشاكل وحلّها في خدمة 503 في الوقت الفعلي غير متاحة من Backend Server

المشكلة

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

رسائل الخطأ

يمكنك رؤية إحدى رسائل الخطأ التالية:

HTTP/1.1 503 Service Unavailable
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity

قد تظهر أيضًا رسالة خطأ كما يلي في استجابة HTTP:

The server is temporarily unable to service your request due to
maintenance downtime or capacity problems. Please try again later.

ملاحظة: رمز الاستجابة ورسالة الخطأ أعلاه هما مجرد أمثلة. في بعض الحالات، قد يظهر لك رمز الاستجابة للخطأ فقط بدون ظهور أي رسالة خطأ. قد يختلف تنسيق ومحتوى رمز الاستجابة للخطأ ورسالة الخطأ وفقًا لتنفيذ الخادم الخلفي.

الأسباب

يعني رمز حالة HTTP 503 أنّ الخادم غير قادر حاليًا على معالجة الطلبات الواردة. يحدث هذا الخطأ عادةً عندما يكون الخادم مشغولاً جدًا أو متوقّف مؤقتًا للصيانة.

الأسباب المحتملة للاستجابة 503 Service Unavailable هي:

السبب الوصف مَن يمكنه تنفيذ خطوات تحديد المشاكل وحلّها
التحميل الزائد على الخادم تم تحميل خادم الخلفية بشكل زائد أو يتجاوز سعته، ولا يمكنه معالجة أي طلبات واردة جديدة من العميل. مستخدمو Edge العام والخاص على السحابة الإلكترونية
جارٍ صيانة الخادم قد يكون خادم الخلفية قيد الصيانة مؤقتًا. مستخدمو Edge العام والخاص على السحابة الإلكترونية

السبب: التحميل/الخادم الزائد/الخادم أثناء الصيانة

في Apigee Edge، يمكن عرض الخطأ 503 Service Unavailable من خادم خلفية في أي من الحالات التالية:

  • هناك خادم خلفية عليه تحميل زائد/مشغول ولا يمكنه معالجة أي طلبات جديدة.
  • تم تعطل خادم الخلفية لفترة مؤقتة بسبب أعمال الصيانة.

التشخيص

لتشخيص الخطأ، يمكنك استخدام أي من الطرق الثلاث التالية:

  • أداة التتبُّع
  • سجلات وصول NGINX
  • اتصال مباشر بخادم الخلفية

انقر على علامات التبويب أدناه للاطّلاع على كل طريقة.

أداة التتبُّع

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

    إليك لقطة شاشة لتتبُّع تتبُّع تعرض الاستجابة "503 الخدمة غير متاحة" التي تم تلقّيها من الخادم الهدف:

  5. انقر على مرحلة الاستجابة التي تم تلقّيها من الخادم الهدف وانتقِل إلى قسمَي "عناوين الاستجابة" و"محتوى الاستجابة" لمعرفة ما إذا كانت تتضمن أي معلومات مفيدة:
    • قد تحتوي عناوين الاستجابة على عنوان الخادم، ما يشير إلى المكان الذي تم إرسال استجابة الخطأ منه.
    • قد يتضمّن محتوى الاستجابة معلومات إضافية حول سبب إرسال الخادم الهدف لرمز الاستجابة 503.
  6. تأكَّد من أنّ الخطأ 503 صادر من الخادم الهدف من خلال التحقّق من قيمتَي X-Apigee-fault-source وX-Apigee-fault-source في مرحلة X-Apigee-fault-source (بيانات "إحصاءات Google" المسجّلة) في عملية التتبّع باستخدام الخطوات الواردة أدناه:
    1. انقر على مرحلة AX (بيانات "إحصاءات Google" المسجّلة) كما هو موضّح في لقطة الشاشة أدناه:
    2. انتقِل لأسفل قسم "Stage Details" (تفاصيل المرحلة) إلى قسم Response Headers (عناوين الاستجابة) وحدِّد قيم X-Apigee-fault-code وX-Apigee-fault-code كما هو موضّح أدناه:
    3. إذا كانت قيمتا X-Apigee-fault-source وX-Apigee-fault-source تتطابقان مع القيم الموضّحة في الجدول أدناه، يمكنك التأكّد من أنّ الخطأ 503 صادر من الخادم الهدف:
      عناوين الاستجابة القيمة
      X-Apigee-fault-source الاستهداف
      X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
  7. تحقَّق ممّا إذا كنت تستخدم تسلسل الخادم الوكيل، أي ما إذا كانت نقطة النهاية المستهدَفة/الخادم الهدف يستدعي خادمًا وكيلاً آخر في Apigee. ولتحديد ذلك:
    1. انتقل مرة أخرى إلى مرحلة تم إرسال طلب إلى الخادم المستهدف وانقر على الزر إظهار عنوان URL وحدد الاسم المستعار لمضيف الخادم المستهدف.
    2. إذا كان الاسم المستعار لمضيف الخادم الهدف يشير إلى اسم مستعار لمضيف افتراضي، يكون عندئذٍ تسلسل الخادم الوكيل. في هذه الحالة، يجب تكرار جميع الخطوات السابقة للخادم الوكيل المتسلسل حتى تحدد السبب الفعلي للخطأ 503 Service Unavailable. في هذه الحالات، قد تحدث حالة "503 الخدمة غير متاحة" في الخوادم الوكيلة الأخرى المتسلسلة في مراحل أخرى، ويمكن أيضًا تشخيصها باستخدام هذا الدليل الإرشادي.
    3. إذا كان الاسم المستعار لمضيف الخادم الهدف يشير إلى خادم الخلفية، فانتقل إلى الدقة.

سجلات وصول NGINX

يمكنك أيضًا الرجوع إلى سجلات سجلات NGINX لتحديد ما إذا تم إرسال رمز الحالة 503 من خلال الخادم الخلفي. ويكون هذا الإجراء مفيدًا على وجه الخصوص إذا كانت المشكلة قد حدثت في الماضي أو إذا كانت متقطّعة ويتعذّر عليك تسجيل بيانات التتبّع في واجهة المستخدم. اتّبِع الخطوات التالية لتحديد هذه المعلومات من سجلات وصول NGINX:

  1. تحقَّق من سجلات وصول NGINX.
    /opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
  2. ابحث عن أي أخطاء 503 للخادم الوكيل المحدد لواجهة برمجة التطبيقات خلال مدة محددة (إذا حدثت المشكلة في الماضي) أو عن أي طلبات لا تزال تفشل مع الخطأ 503.
  3. إذا كانت هناك أي أخطاء 503، فتحقق مما إذا كان الخطأ صادرًا من خادم الخلفية. إذا كانت قيمتا X-Apigee-fault-source وX-Apigee-fault-source تتطابق مع القيم المعروضة في الجدول أدناه، سيصدر الخطأ 503 من خادم الخلفية:
    عناوين الاستجابة القيمة
    X-Apigee-fault-source الاستهداف
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode

    وفي ما يلي إدخال نموذجي يعرض الخطأ 503 الذي تسبب فيه الخادم الهدف:

  4. راجِع الخادم الوكيل المحدّد لواجهة برمجة التطبيقات وتأكَّد من أنّك تستخدم تسلسل الخادم الوكيل، أي في حال عدم استدعاء الخادم الهدف/نقطة النهاية المستهدفة لخادم وكيل آخر في Apigee إذا كنت تستخدم تسلسل الخادم الوكيل، عليك تكرار جميع الخطوات السابقة للخادم الوكيل المتسلسل حتى تحدد السبب الفعلي للخطأ 503 "الخدمة غير متاحة". وفي هذه الحالات، قد يحدث خطأ 503 Service Unavailable في الخوادم الوكيلة الأخرى المسلسلة في مراحل أخرى أيضًا، والتي يمكنك تشخيصها باستخدام هذا الدليل الإرشادي.
  5. إذا تأكدت من أنك لا تستخدم تسلسل الخادم الوكيل وكان الخطأ 503 صادرًا من الخادم الخلفي، انتقِل إلى الحل.

الاتصال بخادم الخلفية

يمكنك إجراء اتصال مباشر بخادم الخلفية والتأكّد من أنّك تتلقّى نفس استجابة 503 Service Unavailable كما تم استلامها عندما تم تقديم الطلب من خلال Apigee Edge.

  1. تأكَّد من توفّر جميع العناوين ومَعلمات طلب البحث المطلوبة وأي بيانات اعتماد يجب تمريرها إلى خادم الخلفية كجزء من الطلب.
  2. إذا كانت خدمة الخلفية متاحة للجميع، يمكنك استخدام الأمر curl أو Postman أو أي عميل REST آخر واستدعاء واجهة برمجة تطبيقات خادم الخلفية مباشرةً.
  3. في حال عدم إمكانية الوصول إلى خادم الخلفية إلا من خلال معالجات الرسائل، يمكنك استخدام الأمر curl أو Postman أو أي عميل REST آخر واستدعاء واجهة برمجة تطبيقات خادم الخلفية مباشرةً من Message Processor.
  4. تحقق من أن خدمة الخلفية تعرض بالفعل الخطأ "503 الخدمة غير متوفرة".

درجة الدقّة

إذا تأكدت من أن الخطأ 503 يأتي من خادم الخلفية، فيمكنك القيام بما يلي لحل المشكلة:

  • إذا كانت المشكلة ناتجة عن توقف الخادم الخلفي للصيانة، يمكنك إعادة اتصال خادم الخلفية بالإنترنت بعد فترة الصيانة.
  • إذا كانت المشكلة ناتجة عن تحميل زائد على خادم الخلفية، عليك حلّ المشكلة إذا كان بإمكانك الوصول إلى خادم الخلفية. بخلاف ذلك، قد تحتاج إلى العمل مع فريق خادم الخلفية لإصلاح المشكلة.

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

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

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

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

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

إذا كنت من مستخدمي السحابة الإلكترونية العامة، يُرجى تقديم المعلومات التالية:

  • اسم المؤسسة
  • اسم البيئة
  • اسم الخادم الوكيل لواجهة برمجة التطبيقات
  • إكمال أمر curl لإعادة إظهار الخطأ 503
  • تتبُّع ملف التتبُّع الذي يحتوي على الطلبات مع ظهور الخطأ "503 الخدمة غير متاحة"
  • إذا كانت أخطاء 503 لا تحدث حاليًا، يمكنك توفير معلومات عن المنطقة الزمنية خلال الفترة الزمنية التي حدثت فيها أخطاء 503 في الماضي.

إذا كنت مستخدمًا خاصًا في السحابة الإلكترونية، يُرجى تقديم المعلومات التالية:

  • رسالة الخطأ الكاملة التي تم رصدها للطلبات التي تعذّر تنفيذها
  • اسم المؤسسة واسم البيئة واسم الوكيل لواجهة برمجة التطبيقات التي تلاحظ أخطاء 503 لها.
  • حزمة الخادم الوكيل لواجهة برمجة التطبيقات.
  • ملف التتبُّع الذي يحتوي على الطلبات مع ظهور الخطأ "503 Service Unavailable".
  • سجلات وصول NGINX.
    /opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
  • سجلّات "معالج الرسائل"
    /opt/apigee/var/log/edge-message-processor/logs/system.log
  • الفترة الزمنية التي تحتوي على معلومات المنطقة الزمنية عندما حدثت أخطاء 503.