أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
المشكلة
يتلقى تطبيق العميل رمز حالة HTTP 504 مع الرسالة "مهلة المدخل" استجابةً لطلبات واجهة برمجة التطبيقات.
تشير استجابة الخطأ هذه إلى أنّ العميل لم يتلقَّ استجابة في الوقت المناسب من Apigee Edge أو خادم الخلفية أثناء تنفيذ طلب بيانات من واجهة برمجة التطبيقات.
رسالة الخطأ
يتلقّى تطبيق العميل رمز الاستجابة التالي:
HTTP/1.1 504 Gateway Timeout
قد يتبع هذا الرمز رسالة خطأ مشابهة للرسالة الواردة أدناه:
<html> <head><title>504 Gateway Timeout</title></head> <body bgcolor="white"> <center><h1>504 Gateway Timeout</h1></center> </body> </html>
ما هي أسباب انتهاء مهلة المدخل؟
المسار النموذجي لطلب البيانات من واجهة برمجة التطبيقات الذي يتم تقديمه من خلال Apigee Edge هو Client -> جهاز التوجيه -> معالج الرسائل -> خادم الخلفية كما هو موضح في الشكل أدناه:
يتم ضبط تطبيقات العميل والموجهات ومعالجات الرسائل باستخدام قيم مهلة مناسبة. يتوقع Apigee Edge ردًا على كل طلب من واجهة برمجة التطبيقات خلال فترة زمنية استنادًا إلى قيم المهلة. وفي حال عدم تلقي الاستجابة خلال الفترة الزمنية المحددة، سيتم عرض رسالة خطأ 504 الخاص بانتهاء مهلة المدخل.
الأسباب المحتملة
في Apigee Edge، يرجع السبب المعتاد لاستجابة مهلة 504 لمهلة 504 من خادم الخلفية إلى ما يلي:
السبب | الوصف | تعليمات تحديد المشاكل وحلّها لـ |
---|---|---|
استجابة خادم الخلفية بعبارة 504 لمهلة المدخل | انتهت مهلة خادم الخلفية ويُرجع استجابة مهلة 504 إلى معالج الرسائل. | مستخدمو Edge، سواء على السحابة الإلكترونية الخاصة أو العامة |
استجابة خادم الخلفية من خلال مهلة 504 البوابة
قد يستجيب خادم الخلفية برمز استجابة HTTP لمهلة 504 البوابة.
التشخيص
يشرح هذا القسم كيفية تشخيص مهلة 504 بوابة بشكل صحيح. إجراءات لكل من الخصوصية يتم إدراج مستخدمي Public Cloud.
الإجراء رقم 1: استخدام Trace (مستخدمي السحابة الإلكترونية الخاصة والعامة)
- فعِّل ميزة Trace في واجهة مستخدم Apigee لواجهة برمجة التطبيقات المتأثرة.
- أرسل طلبًا إلى خادم الخلفية.
- في حال عرض طلب واجهة برمجة التطبيقات الذي تعذّر تنفيذه استجابة 504 من خادم الخلفية في أداة التتبُّع، فإن سبب انتهاء مهلة 504 البوابة هو خادم الخلفية.
- لتحديد وقت الاستجابة، انقر على الردّ الذي تم تلقّيه من الخادم الهدف.
مرحلة في التتبع. في المثال الموضح، الوقت المنقضي هو 60004 ملي ثانية:
.
يوفر قسم تفاصيل المرحلة معلومات إضافية:
- ويسلّط الضوء على استجابة مهلة 504 بوابة التي تم تلقّيها من خادم الخلفية.
- يعرض قسم محتوى الرد النص الأساسي للرد من خادم الخلفية. كما أشرنا سابقًا، قد يختلف تنسيق حمولة الاستجابة ومحتواها استنادًا إلى تطبيق خادم الخلفية.
- عنوان الرد > قد يشير قسم الخادم إلى مصدر الرد.
- لعرض بيانات "إحصاءات Google" وتأكيد التشخيص، انقر على البيانات المسجَّلة في "إحصاءات Google"
في التتبع، كما هو موضح في الشكل أدناه:
يعرض قسم عناوين الاستجابة ضمن تفاصيل المرحلة قيم
X-Apigee-fault-code
وX-Apigee-fault-source
، كما هو موضح في كما هو موضح أدناه:إذا كانت هذه الحقول تحتوي على القيم المعروضة في الجدول أدناه، تنشأ استجابة الخطأ 504 من خادم الخلفية:
عناوين الردود القيمة X-Apigee-fault-source الاستهداف X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode -
البحث عن
تسلسل استدعاء الدوال البرمجية. يُرجى اتّباع هذه الخطوات لتحديد ما إذا كان خادم الخلفية يستدعي خادمًا وكيلاً آخر
في Apigee:
- انتقِل مرة أخرى إلى مرحلة تم إرسال الطلب إلى الخادم الهدف وانقر على إظهار زر Curl لعرض الاسم المستعار لمضيف خادم الخلفية.
- إذا كان الاسم المستعار لمضيف الخادم الخلفي يشير إلى اسم مستعار لمضيف افتراضي، فإن تسلسل الخادم الوكيل يكون الْمَكَانْ. كرِّر الخطوات المذكورة أعلاه لكل خادم وكيل متسلسل لتشخيص سبب مدخل 504 استجابة خطأ المهلة. 504 مهلات البوابة تحدث في خوادم وكيلة متسلسلة في مراحل أخرى من يمكن تشخيص دورة الطلب/الاستجابة باستخدام هذا الدليل الإرشادي
- إذا كان الاسم المستعار لمضيف الخادم الخلفي يشير إلى خادم الخلفية، فتابع إلى الحلّ:
الإجراء رقم 2: استدعاء واجهة برمجة تطبيقات خادم الخلفية مباشرةً (مستخدمو السحابة الإلكترونية العلنية وخاصة)
الاتصال بخادم الخلفية مباشرةً لتأكيد سلوك استجابة مهلة 504 نفسه للمدخل عند تقديم الطلب من خلال Apigee Edge
- تأكَّد من توفّر جميع الرؤوس ومعلَمات طلب البحث وبيانات الاعتماد المطلوبة. تمريره إلى خادم الخلفية كجزء من الطلب.
- إذا كانت الخدمة الخلفية متاحة للجميع، يمكنك استخدام الأمر
curl
، Postman أو أي برنامج REST آخر واستدعاء واجهة برمجة تطبيقات خادم الخلفية مباشرةً - إذا كان الوصول إلى خادم الخلفية متاحًا من خلال "معالجي الرسائل" فقط، استخدِم واجهة برمجة التطبيقات
curl
. أو Postman أو أي عميل REST آخر باستدعاء واجهة برمجة تطبيقات خادم الخلفية مباشرةً من معالج الرسائل. - إذا عرضت خدمة الخلفية استجابة 504 لمهلة المدخل، يُرجى المتابعة إلى الحلّ:
الإجراء رقم 3: التحقُّق من سجلات الوصول إلى NGINX (لمستخدمي السحابة الإلكترونية الخاصة فقط)
يمكن أن تساعد سجلات الوصول إلى NGINX في تحديد ما إذا كان خادم الخلفية قد أرسل استجابة الخطأ 504. يكون هذا الأمر مفيدًا بشكل خاص إذا كانت المشكلة قد حدثت في الماضي أو كانت بشكل متقطع أو لا يمكن تسجيلها. في Trace. اتّبِع الخطوات التالية للتحقّق من سجلّات الوصول إلى NGINX:
- اطّلِع على سجلات وصول NGINX باستخدام الأمر التالي:
/opt/apigee/var/log/edge-router/nginx/ ORG ~ENV.PORT# _access_log
- تحقَّق من ظهور استجابات للأخطاء 504 في الخادم الوكيل لواجهة برمجة التطبيقات المتأثّر. يمكنك التحقق من فترة زمنية محددة، ما إذا كانت المشكلة قد حدثت في الماضي، أو تحديد ما إذا كانت الطلبات لا تزال تخفق مع الاستجابة للخطأ 504 أم لا.
- إذا كانت هناك أي استجابات للخطأ 504، حدد ما إذا كانت استجابة الخطأ نشأت من خادم الخلفية.
- مراجعة الخادم الوكيل لواجهة برمجة التطبيقات المتأثر للتحقق من تسلسل الخادم الوكيل على سبيل المثال، يستدعي خادم الخلفية/نقطة النهاية المستهدفة خادمًا وكيلاً آخر في Apigee. إذا كان خادم وكيل واجهة برمجة التطبيقات باستخدام تسلسل الخادم الوكيل ، كرِّر الخطوات المذكورة أعلاه لكل خادم وكيل متسلسل لتشخيص سبب انتهاء مهلة 504 البوابة خطأ. يمكن تشخيص مهلات 504 التي تحدث في الخوادم الوكيلة المتسلسلة في مراحل أخرى باستخدام هذا الدليل الإرشادي
- إذا لم تكن هناك خادم وكيل، وستنشأ استجابة الخطأ 504 من خادم الخلفية، انتقِل إلى حلّ المشكلة.
يظهر أدناه مثال على إدخال في سجلّ NGINX يعرض الاستجابة للخطأ 504 بسبب الخادم الهدف:
إذا كان الحقلان X-Apigee-fault-source
وX-Apigee-fault-code
يحتويان على
الموضحة في الجدول أدناه، تنشأ استجابة 504 من خادم الخلفية:
عناوين الردود | القيمة |
---|---|
X-Apigee-fault-source | الاستهداف |
X-Apigee-fault-code | messaging.adaptors.http.flow.ErrorResponseCode |
الإجراء 4: استخدام مراقبة واجهة برمجة التطبيقات (مستخدمو Cloud العام فقط)
تتيح لك مراقبة واجهة برمجة التطبيقات عزل المشاكل بسرعة لتشخيص مشكلات الخطأ والأداء ووقت الاستجابة ومصدرها، مثل تطبيقات مطوِّري البرامج، الخوادم الوكيلة لواجهة برمجة التطبيقات أو الأهداف الخلفية أو النظام الأساسي لواجهة برمجة التطبيقات
الاطّلاع على نموذج سيناريو يشرح كيفية تحديد مشاكل 5xx وحلّها في واجهات برمجة التطبيقات باستخدام "مراقبة واجهة برمجة التطبيقات". على سبيل المثال: يمكنك إعداد تنبيه لإشعار المشرفين عندما يتجاوز عدد رموز الحالة 504 حدًا معيّنًا.
الدقة
باستخدام إجراءات التشخيص الموضحة أعلاه، يمكنك العمل مع فريق خادم الخلفية لإصلاح المشكلة في خادم الخلفية. قد يشمل ذلك ضبط المهلات في خوادم الخلفية أو مهلات في أي من أجهزة موازنة الحمل أمام الخوادم المستهدفة.
جمع معلومات التشخيص
في حال استمرار المشكلة، يُرجى مشاركة معلومات التشخيص التالية مع Apigee Support.
إذا كنت من مستخدمي Public Cloud، يُرجى تقديم المعلومات التالية:
- اسم المؤسسة
- اسم البيئة
- اسم الخادم الوكيل لواجهة برمجة التطبيقات
- إكمال الأمر
curl
المستخدم لإعادة إنتاج استجابة الخطأ 504 - تتبُّع ملف يتضمّن طلبات واجهة برمجة التطبيقات التي تتلقّى استجابة خطأ 504 الخاص بانتهاء مهلة المدخل
إذا كنت من مستخدمي سحابة خاصة، قدِّم المعلومات التالية:
- ظهور رسالة خطأ كاملة للطلبات التي تعذّر تنفيذها
- اسم البيئة
- حزمة الخادم الوكيل لواجهة برمجة التطبيقات
- تتبُّع ملف يتضمّن طلبات واجهة برمجة التطبيقات التي تتلقّى استجابة خطأ 504 مهلة المدخل
- سجلات وصول NGINX
/opt/apigee/var/log/edge-router/nginx/ ORG ~ENV.PORT# _access_log
- سجلات معالج الرسائل
/opt/apigee/var/log/edge-message-processor/logs/system.log