أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
الفيديوهات
فيديو | الوصف |
---|---|
خطأ في الخادم الداخلي 500 - سببه الخلفية | يوضح هذا العرض 500 Internal Server Error في الوقت الفعلي الناتج عن خادم الخلفية، بالإضافة إلى خطوات تحديد المشاكل وحلّها وحل الخطأ. |
المشكلة
يحصل تطبيق العميل على رمز حالة HTTP 500
مع الرسالة
Internal Server Error
كاستجابة لطلبات البيانات من واجهة برمجة التطبيقات.
رمز حالة HTTP 500
هو استجابة خطأ عامة. وهذا يعني أن الخادم
واجه حالة غير متوقعة منعته من تلبية الطلب. هذا الخطأ هو
يعرضها الخادم عادةً عندما لا يكون هناك أي رمز خطأ آخر مناسبًا.
رسائل الخطأ
يحصل تطبيق العميل على رمز الاستجابة التالي:
HTTP/1.1 500 Internal Server Error
بالإضافة إلى ذلك، قد تلاحظ رسالة خطأ مشابهة للرسالة الموضحة أدناه:
النموذج رقم 1
نموذج استجابة خادم الخلفية رقم 1
{"errorMessage":"Sorry either your e-mail or password didn't match.", "errorParameters":"{}", "errorCode":"500", "errorKey":"INVALID_EMAILPASSWORD"}
النموذج رقم 2
نموذج استجابة خادم الخلفية رقم 2
<Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <Body> <Error> <code>500</code> <message xml:lang="en-US">Not Authorised(e4138fa0-ec57).</message> </Error> </Body> </Envelope>
الأسباب المحتملة
قد يعرض خادم الخلفية 500 Internal Server Error
نتيجة
عدد من الأسباب. يشرح هذا الدليل الإرشادي كيفية تحديد المشاكل وحلّها باتّباع الخطوات الشائعة.
الخطأ بغض النظر عن السبب.
في ما يلي الأسباب المحتمَلة لهذه المشكلة:
السبب | الوصف | إرشادات استكشاف الأخطاء وإصلاحها التي تنطبق على |
---|---|---|
حدث خطأ في خادم الخلفية | قد يخفق خادم الخلفية لسبب ما. | مستخدمو Edge Private وPublic Cloud |
خطوات التشخيص الشائعة
استخدِم إحدى الأدوات/الأساليب التالية لتشخيص هذا الخطأ:
مراقبة واجهة برمجة التطبيقات
الإجراء الأول: استخدام مراقبة واجهة برمجة التطبيقات
لتشخيص الخطأ باستخدام مراقبة واجهة برمجة التطبيقات:
- سجِّل الدخول إلى واجهة مستخدم Apigee Edge كمستخدم باستخدام الدور المناسب.
انتقِل إلى المؤسسة التي تريد التحقيق في المشكلة فيها.
- انتقل إلى تحليل > مراقبة واجهة برمجة التطبيقات > التحقيق في الصفحة.
- اختَر الفترة الزمنية المحدّدة التي لاحظت فيها الأخطاء.
ارسم رمز الخطأ مقابل الوقت.
اختَر خلية تحتوي على رمز الخطأ.
messaging.adaptors.http.flow.ErrorResponseCode
كما هو موضّح أدناه:معلومات عن رمز الخطأ يتم عرض
messaging.adaptors.http.flow.ErrorResponseCode
على شكل كما هو موضح أدناه:انقر على عرض السجلات ووسِّع صف الطلب الذي تعذّر تنفيذه.
- من نافذة السجلات، يُرجى ملاحظة التفاصيل التالية:
- طلب رقم تعريف الرسالة
- رمز الحالة:
500
- مصدر الخطأ:
target
- رمز الخطأ:
messaging.adaptors.http.flow.ErrorResponseCode
التتبّع
الإجراء رقم 2: استخدام أداة التتبُّع
لتشخيص الخطأ باستخدام أداة التتبُّع:
- فعِّل جلسة التتبع وإمّا
- انتظار ظهور الخطأ "
500 Internal Server Error
" الذي يظهر رمز الخطأ سيحدثmessaging.adaptors.http.flow.ErrorResponseCode
، أو - إذا كان يمكنك إعادة إنتاج المشكلة، يُرجى طلب بيانات من واجهة برمجة التطبيقات لإعادة إنتاج المشكلة.
500 Internal Server Error
- انتظار ظهور الخطأ "
تأكَّد من تفعيل عرض كل FlowInfos:
- اختَر أحد الطلبات التي تعذّر تنفيذها وافحص عملية التتبُّع.
- يمكنك التنقّل خلال مراحل عملية التتبُّع المختلفة وتحديد مكان حدوث الفشل.
سيظهر الخطأ عادةً في مسار بعد الردّ الذي تم تلقّيه من الخادم الهدف. كما هو موضح أدناه:
- انتقِل إلى مرحلة AX (البيانات المسجَّلة في "إحصاءات Google") في عملية التتبُّع وانقر عليها.
مرِّر لأسفل إلى قسم عناوين الرد على تفاصيل المرحلة وحدِّد قيمتي X-Apigee-fault-code وX-Apigee-fault-code، X-Apigee-Message-ID كما هو موضّح أدناه:
- دوِّن قيم X-Apigee-fault-code وX-Apigee-fault-code، وX-Apigee-Message-ID:
عناوين الردود | القيمة |
---|---|
X-Apigee-fault-code | messaging.adaptors.http.flow.ErrorResponseCode |
X-Apigee-fault-source | target |
X-Apigee-Message-ID | MESSAGE_ID |
NGINX
الإجراء رقم 3: استخدام سجلات وصول NGINX
لتشخيص الخطأ باستخدام سجلات وصول NGINX:
- إذا كنت مستخدمًا للسحابة الإلكترونية الخاص، يمكنك استخدام سجلات وصول NGINX لتحديد
المعلومات الأساسية حول HTTP
500 Internal Server Error
. تحقق من سجلات وصول NGINX:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
- البحث لمعرفة ما إذا كان هناك أي أخطاء
500
مع رمز الخطأmessaging.adaptors.http.flow.ErrorResponseCode
خلال مدة محدّدة (إذا حدثت المشكلة في السابقة) أو ما إذا كانت هناك أي طلبات لا تزال تخفق مع500
. إذا ظهرت أي أخطاء
500
في رمز الخطأ X-Apigee-fault-code قيمةmessaging.adaptors.http.flow.ErrorResponseCode
، ثم تحديد قيمة X-Apigee-fault-source..نموذج الخطأ 500 من سجلّ وصول NGINX:
يتضمن إدخال النموذج أعلاه من سجل وصول NGINX القيم التالية X-Apigee-fault-code وX-Apigee-fault-code
العناوين القيمة X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
X-Apigee-fault-source target
السبب: خطأ في خادم الخلفية
التشخيص
يمكن استجابة 500 Internal Server Error
من خادم الخلفية
بسبب عدد من الأسباب. سوف تحتاج إلى تشخيص كل حالة على حدة.
- حدِّد رمز الخطأ ومصدر الخطأ للخطأ الذي تم رصده باستخدام "مراقبة واجهة برمجة التطبيقات". أو سجلات وصول NGINX كما هو موضح في خطوات التشخيص الشائعة.
- إذا كان مصدر الخطأ
target
ورمز الخطأ هوmessaging.adaptors.http.flow.ErrorResponseCode
، فهذا يشير إلى أن يعرض خادم الخلفية الخطأ. - يمكنك اتّباع إحدى الخطوات التالية لتشخيص سبب المشكلة:
التتبّع
استخدام عملية التتبّع:
إذا كانت لديك جلسة تتبع للفشل، نفِّذ الخطوات التالية:
- في Trace (التتبّع)، اختَر طلب واجهة برمجة التطبيقات الذي تعذّر مع
500 Internal Server Error
اختَر مرحلة الردّ الذي تم تلقّيه من الخادم الهدف من تعذّر تنفيذ طلب بيانات من واجهة برمجة التطبيقات كما هو موضّح في الشكل أدناه:
مرِّر لأسفل وصولاً إلى قسم تفاصيل المرحلة وتحقَّق من محتوى الردّ، الذي يتضمّن الردّ من خادم الخلفية
نموذج محتوى الردّ:
<Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <Body> <Error> <code>500</code> <message xml:lang="en-US">Not Authorised(e4138fa0-ec57).</message> </Error> </Body> </Envelope>
في الرد أعلاه، لاحظ أن رسالة الخطأ من خادم الخلفية غير مسموح به: يشير ذلك إلى أنّ المستخدم قد يكون قد تجاوز قيمة صالحة بيانات الاعتماد وهذا هو سبب ظهور هذا الخطأ.
خادم خلفية الاتصال
إجراء اتصال مباشر بخادم الخلفية:
يمكنك إجراء اتصال مباشر بخادم الخلفية وإجراء ما يلي:
- تأكَّد من حصولك على قيمة
500 Internal Server Error
نفسها. الرد الذي تم استلامه عند تقديم الطلب من خلال Apigee Edge - التحقّق من رسالة الخطأ (الاستجابة) التي تم تلقّيها من خادم الخلفية
نفِّذ الخطوات التالية لإجراء الاتصال المباشر بخادم الخلفية:
- تأكّد من توفّر جميع العناوين ومعلَمات طلب البحث المطلوبة بيانات الاعتماد التي يلزم تمريرها إلى خادم الخلفية كجزء من الطلب.
- إذا كانت الخدمة الخلفية متاحة للجميع، يمكنك استخدام
curl
أو Postman أو أي برنامج REST آخر واستدعاء واجهة برمجة تطبيقات خادم الخلفية مباشرةً. فإذا كان الوصول إلى الخادم الخلفي متاحًا فقط من خلال "معالجات الرسائل"، يمكنك استخدام الأمر
curl
أو Postman أو أي برنامج REST آخر واستدعاء واجهة برمجة تطبيقات خادم الخلفية مباشرة من معالج الرسائل.- تحقَّق مما إذا كانت خدمة الخلفية تعرض رمز الاستجابة
500 Internal Server Error
بالفعل وتحقَّق من رسالة الخطأ (الاستجابة) التي يعرضها خادم الخلفية. لتحديد سبب هذا الخطأ.
سجلات خادم الخلفية
استخدام سجلات خادم الخلفية
- راجع سجلات خادم الخلفية وحاول الحصول على مزيد من التفاصيل حول الخطأ وسببها.
- فعِّل وضع تصحيح الأخطاء على خادم الخلفية، إن أمكن، للاطّلاع على مزيد من التفاصيل. حول الخطأ والسبب.
- في Trace (التتبّع)، اختَر طلب واجهة برمجة التطبيقات الذي تعذّر مع
تحقق لمعرفة ما إذا كنت تستخدم تسلسل الخادم الوكيل في نقطة النهاية المستهدَفة المحدّدة للخادم الوكيل لواجهة برمجة التطبيقات الذي تعذّر إكماله أي إذا كان الخادم الهدف/نقطة النهاية المستهدفة يستدعي خادمًا وكيلاً آخر في Apigee Edge. لتحديد ذلك:
إذا تتبّعت عملية الطلب التي تعذّر إكمالها، انتقِل إلى القسم تم إرسال الطلب لاستهداف الخادم وانقر على إظهار Curl.
- تفتح نافذة تجعيد الطلب الذي تم إرساله إلى الخادم المستهدف التي يمكنك منها يمكن من خلالها تحديد الاسم المستعار لمضيف الخادم المستهدف.
- راجِع نقطة النهاية المستهدفة للخادم الوكيل لواجهة برمجة التطبيقات وتحقَّق مما إذا كان خادم الخلفية. يشير عنوان URL أو اسم المضيف في الخادم الهدف إلى خادم وكيل آخر أو خادمك الخاص خادم الخلفية.
- فإذا كان الاسم المستعار لمضيف الخادم المستهدف يشير إلى اسم مستعار لمضيف افتراضي، فإنه
وهو تسلسل الخادم الوكيل. في هذه الحالة، تحتاج إلى تكرار جميع الخطوات المذكورة أعلاه
خادم وكيل متسلسل إلى أن تحدد السبب الفعلي في
500 Internal Server Error
. في هذه الحالات، قد يكون لدى500 Internal Server Error
في الخوادم الوكيلة المتسلسلة الأخرى وفي مراحل أخرى والتي يمكن تشخيصها أيضًا باستخدام الإرشادات الواردة في هذا الدليل أو في الدليل الإرشادي حول الخطأ 500 في الخادم الداخلي - إذا كان الاسم المستعار لمضيف الخادم المستهدف يشير إلى خادم الخلفية، فانتقل إلى الحلّ:
الدقة
إذا تم التأكّد من أنّ الخطأ 500
يأتي من خادم الخلفية، عندها
والعمل مع فريق خادم الخلفية لحل المشكلة بشكل مناسب.
في المثال الذي ناقشناه أعلاه، قد تضطر إلى أن تطلب من المستخدمين اجتياز بيانات اعتماد صالحة لحلّ المشكلة. هذه المشكلة.
نقاط رئيسية يجب مراعاتها
- لا يمكن عرض رسالة الخطأ الفعلية التي يعرضها خادم الخلفية لعنوان البريد الإلكتروني
500 Internal Server Error
إلا إذا كنت قد حصلت على جلسة التتبُّع التي تعذّر عرضها. الطلبات. - لن يتم تسجيل استجابة خادم الخلفية في مراقبة واجهة برمجة التطبيقات أو سجلات وصول NGINX سجلات معالج الرسائل لأسباب أمنية.
- يمكنك مراجعة سجلات خادم الخلفية أو تفعيل وضع تصحيح الأخطاء في الخلفية للحصول على المزيد من المعلومات.
تحتوي على تفاصيل حول
500 Internal Server Error
و/أو عرض رسالة الخطأ التي تم عرضها. بواسطة خادم الخلفية.
يجب جمع معلومات التشخيص
في حال استمرار المشكلة حتى بعد اتّباع التعليمات أعلاه، يُرجى جمع ما يلي معلومات التشخيص والتواصل مع فريق دعم Apigee Edge.
إذا كنت من مستخدمي Cloud Public، يُرجى تقديم المعلومات التالية:
- اسم المؤسسة
- اسم البيئة
- اسم الخادم الوكيل لواجهة برمجة التطبيقات
- إكمال الأمر
curl
لإعادة إظهار الخطأ500
- ملف تتبُّع يحتوي على الطلبات من خلال "
500 Internal Server Error
" - في حال عدم حدوث أخطاء
500
حاليًا، يُرجى تقديم الوقت. فترة تتضمّن معلومات المنطقة الزمنية عند حدوث أخطاء500
في الماضي.
إذا كنت مستخدمًا للسحابة الإلكترونية الخاصة، قدِّم المعلومات التالية:
- ظهور رسالة خطأ كاملة للطلبات التي تعذّر تنفيذها
- اسم المؤسسة واسم البيئة واسم الخادم الوكيل لواجهة برمجة التطبيقات التي تراقبها
خطآن (
500
) - حزمة الخادم الوكيل لواجهة برمجة التطبيقات
- ملف تتبُّع يحتوي على الطلبات من خلال "
500 Internal Server Error
" - سجلّات وصول NGINX
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
المكان: ORG وENV وPORT# واستبدالها بالقيم الفعلية.
- سجلات نظام معالج الرسائل
/opt/apigee/var/log/edge-message-processor/logs/system.log
- الفترة الزمنية التي تتضمّن معلومات المنطقة الزمنية التي حدثت فيها أخطاء
500
.