أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
المشكلة
يحصل تطبيق العميل على رمز حالة HTTP 503 Service Unavailable
مع
رمز الخطأ protocol.http.ProxyTunnelCreationFailed
كاستجابة لطلبات البيانات من واجهة برمجة التطبيقات.
رسالة الخطأ
يحصل تطبيق العميل على رمز الاستجابة التالي:
HTTP/1.1 503 Service Unavailable
بالإضافة إلى ذلك، قد تلاحظ رسالة الخطأ التالية:
{ "fault":{ "faultstring":"Proxy refused to create tunnel with response status 403", "detail":{ "errorcode":"protocol.http.ProxyTunnelCreationFailed" } } }
الخادم الوكيل لإعادة التوجيه والاتصال النفقي
تسمح Apigee Edge للخوادم الوكيلة لواجهة برمجة التطبيقات بالتواصل مع خادم الخلفية من خلال خادم وكيل.
كما هو موضح في
ضبط الخادم الوكيل لإعادة التوجيه يفتح الخادم الوكيل بروتوكولاً آمنًا (HTTPS) أو غير آمن
(HTTP) من الاتصال بخادم الخلفية بناءً على نوع الخادم الوكيل (يشار إليه
من خلال الموقع HTTPClient.proxy.type
) يستخدمها الموقع وينقل البيانات
في كلا الاتجاهين. يُعرف ذلك باسم النفق.
بشكل تلقائي، تستخدم Apigee Edge الاتصال النفقي لجميع الزيارات. لإيقاف الاتصال النفقي، يستخدم الموقع
يجب ضبط HTTPClient.use.tunneling
على false
.
رمز الخطأ: Protocol.http.ProxyTunnelCreationتعذّر
تعرض Apigee Edge رمز الخطأ protocol.http.ProxyTunnelCreationFailed
إذا كانت
تعذر على الخادم الوكيل إنشاء نفق بين Apigee Edge وخادم الخلفية بسبب أي
مشكلات مثل جدار الحماية، وقيود قائمة التحكم بالوصول (ACL)، ومشكلات نظام أسماء النطاقات، وخادم الخلفية
وعدم التوفُّر والمهلات وما إلى ذلك
رمز الحالة في faultstring
للاستجابة من Apigee Edge عادةً
إلى سبب كبير محتمل أدى إلى هذا الخطأ.
نموذج سلسلة الأخطاء:
Proxy refused to create tunnel with response status STATUS_CODE
الأسباب المحتملة لبعض رموز الحالة المرصودة في سلسلة الخطأ:
يصف الجدول التالي الأسباب المحتملة بناءً على رمز الحالة المشار إليه في
faultstring
:
ثغرة | الوصف |
---|---|
رفض الخادم الوكيل إنشاء نفق بحالة الاستجابة 403 . |
قد يحدث هذا بسبب قيود جدار الحماية أو قائمة التحكم بالوصول التي تم تكوينها على خادم الخلفية الذي يمنع إنشاء النفق. |
رفض الخادم الوكيل إنشاء نفق بحالة الاستجابة 503 . |
يمكن أن يحدث هذا بسبب مشكلات في نظام أسماء النطاقات أو قيود جدار الحماية أو قيود عدم التوافر الذي يمنع إنشاء نفق |
رفض الخادم الوكيل إنشاء نفق بحالة الاستجابة 504 |
يمكن أن يحدث ذلك في حال حدوث مهلات أثناء إنشاء النفق. |
بناءً على رمز الحالة الذي تم رصده في faultstring
، يجب استخدام.
والأساليب المناسبة لاستكشاف المشكلة وإصلاحها. يشرح هذا الدليل الإرشادي كيفية تحديد المشاكل وحلّها
حدوث المشكلة إذا لاحظت رمز الحالة 403
في faultstring
لرمز الخطأ protocol.http.ProxyTunnelCreationFailed
.
الأسباب المحتملة
يحدث هذا الخطأ (رمز الحالة 403
) في حالة وجود أي جدار حماية أو قائمة التحكم بالوصول (ACL)
قائمة التحكم) التي تم ضبطها على خادم الخلفية والتي تمنع إنشاء النفق
التي تم إنشاؤها بين Apigee Edge وخادم الخلفية من خلال الخادم الوكيل.
السبب | الوصف | إرشادات استكشاف الأخطاء وإصلاحها التي تنطبق على |
---|---|---|
رفض الخادم الوكيل إنشاء نفق بحالة الاستجابة 403 | يرفض الخادم الوكيل إنشاء النفق أثناء تلقيه اسم مضيف الخادم الوكيل
بدلاً من اسم مضيف خادم الخلفية في العنوان Host . |
مستخدمو Edge Private Cloud فقط |
خطوات التشخيص الشائعة
استخدِم إحدى الأدوات/الأساليب التالية لتشخيص هذا الخطأ:
أداة التتبُّع
لتشخيص الخطأ باستخدام أداة التتبُّع:
- فعِّل جلسة التتبُّع.
إما:
- انتظر حتى يحدث الخطأ، أو
- إذا كان يمكنك إعادة إنتاج المشكلة، يُرجى طلب بيانات من واجهة برمجة التطبيقات لإعادة إنتاج المشكلة.
503 Service Unavailable
معProxy refused to create tunnel with response status 403
تأكَّد من تفعيل عرض كل FlowInfos:
- اختَر أحد الطلبات التي تعذّر تنفيذها وافحص عملية التتبُّع.
- يمكنك التنقّل خلال مراحل عملية التتبُّع المختلفة وتحديد موضع التعذُّر حدث.
سيظهر لك الخطأ عادةً بعد مرحلة بدء تدفق الطلب المستهدَف. كما هو موضح أدناه:
يُرجى مراعاة المعلومات التالية:
الخطأ:
Proxy refused to create tunnel with response status 403
- انتقِل إلى مرحلة AX (البيانات المسجَّلة في "إحصاءات Google") في عملية التتبُّع وانقر عليها.
مرِّر لأسفل إلى قسم تفاصيل المرحلة عناوين الرد تحديد قيم X-Apigee-fault-code وX-Apigee-fault-code على أنه كما هو موضح أدناه:
ستظهر لك قيمتا X-Apigee-fault-code وX-Apigee-error-source. على
protocol.http.ProxyTunnelCreationFailed
وtarget
على التوالي، ما يشير إلى أنّ هذا الخطأ حدث بسبب نفق الخادم الوكيل تعذّر الإنشاء بسبب عدم استلام عنوان المضيف المتوقع.عناوين الردود القيمة X-Apigee-fault-code protocol.http.ProxyTunnelCreationFailed
X-Apigee-fault-source target
NGINX
لتشخيص الخطأ باستخدام سجلات وصول NGINX:
- إذا كنت مستخدمًا للسحابة الإلكترونية الخاص، يمكنك استخدام سجلات وصول NGINX لإجراء ما يلي:
لتحديد المعلومات الرئيسية حول HTTP
503 Service Unavailable
الأخطاء. تحقق من سجلات وصول NGINX:
/opt/apigee/var/log/edge-router/nginx/ORG~ORG.PORT#_access_log
المكان: يتم استبدال ORG وORG وPORT# بقيم فعلية.
- البحث لمعرفة ما إذا كان هناك أي أخطاء
503
مع رمز الخطأprotocol.http.ProxyTunnelCreationFailed
خلال مدة محدّدة (إذا كانت حدثت مشكلة في الماضي) أو إذا كانت هناك أي طلبات لا تزال تخفق مع503
إذا عثرت على أي
503
أخطاء في رمز خطأ X-Apigee التي تطابق قيمةprotocol.http.ProxyTunnelCreationFailed
، ثم تحديد قيمة X-Apigee-fault-source.نموذج الخطأ 503 من سجلّ وصول NGINX:
يتضمن الإدخال النموذجي أعلاه من سجل وصول NGINX القيم التالية الخاصة بـ X- Apigee-يتوفر كود وX-Apigee-error-source:
عناوين الردود القيمة X-Apigee-fault-code protocol.http.ProxyTunnelCreationFailed
X-Apigee-fault-source target
السبب: رفض الخادم الوكيل إنشاء نفق بحالة الاستجابة 403
التشخيص
- حدِّد رمز الخطأ ومصدر الخطأ في
503 Service Unavailable
باستخدام سجلّات وصول أداة التتبُّع أو NGINX كما هو موضَّح في. خطوات التشخيص الشائعة: - راجِع رسالة الخطأ وحدِّد رمز الحالة.
المشار إليه في
faultstring
لتعذُّر إنشاء النفق. - في هذا السيناريو، يكون رمز الحالة هو
403
، وهو ما يعني محظور. - وهذا يعني أنّه ليست هناك حقوق أو امتيازات كافية لإنشاء النفق. يمكن أن عادةً إذا كان هناك أي قيود جدار حماية أو قائمة تحكم بالوصول (ACL) تمنع إنشاء النفق.
- راجع أي قيود جدار حماية و/أو قائمة التحكم بالوصول تمت تهيئتها على خادم الخلفية والتي أن تمنع إنشاء النفق.
- بناءً على نوع جدار الحماية و/أو قيود قائمة التحكم بالوصول (ACL)، تحتاج إلى حل المشكلة بشكل مناسب.
لنأخذ مثالًا على القيود المفروضة على جدار الحماية من أجل توضيح كيفية تحديد هذه المشكلة وحلّها. المشكلة:
السيناريو: من المتوقع أن يتم فرض قيود جدار الحماية على خادم الخلفية على عنوان المضيف دائمًا تحتوي على اسم مضيف خادم الخلفية
يمكنك استخدام إحدى الطرق التالية لتحديد عنوان المضيف الذي تم تمريره من خلال Apigee Edge:
التتبّع
لتحديد "عنوان المضيف" باستخدام ميزة "التتبّع":
- تأكَّد من أنّ السمة
faultstring
تحتوي علىProxy refused to create tunnel with response status 403
باستخدام رمز التتبّع كما هو موضّح في. خطوات التشخيص الشائعة: - انتقِل إلى المرحلة "تدفق الطلب المستهدَف" الذي تم البدء فيه وراجِع عناوين الطلب
- تحقَّق من قيمة اسم المضيف المحدّدة في عنوان المضيف في قسم عناوين الطلب
- إذا كان رأس المضيف يحتوي على اسم المضيف الوكيل، ف سبب هذا الخطأ.
- وهذا بسبب تهيئة جدار الحماية على خادم الخلفية لقبول فقط في حال كان عنوان المضيف يحتوي على اسم خادم الخلفية.
- لذا، عندما يحاول الخادم الوكيل إنشاء نفق باستخدام خادم الخلفية، فإنه
إخفاق مع ظهور الخطأ
Proxy refused to create tunnel with response status 403
.نموذج تتبُّع يُظهر عنوان مضيف يحتوي على اسم مضيف خادم وكيل
في نموذج التتبُّع الوارد أعلاه، يُظهر أنّ عنوان المضيف يحتوي على اسم مضيف الخادم الوكيل
www.proxyserver.com.
نظرًا لوجود تقييد جدار حماية مهيأ على خادم الخلفية والذي يتوقع تضمين اسم مضيف خادم الخلفية في عنوان المضيف، ستحصل على خطأProxy refused to create tunnel with response status 403
.
tcpdump
لتحديد عنوان المضيف باستخدام tcpdump
يمكنك الحصول على
tcpdump
على الخادم الوكيل للطلبات الواردة من مكوِّن معالج الرسائل في Apigee Edge باستخدام الأمر التالي:tcpdump -i any -s 0 host MP_IP_ADDRESS -w FILE_NAME
لمزيد من المعلومات حول استخدام الأمر
tcpdump
، يمكنك الاطّلاع على tcpdump.- تحليل بيانات
tcpdump
باستخدام أداة Wireshark أو ما شابه ذلك . فيما يلي تحليل نموذجي tcpdump باستخدام Wireshark:
- تشير أرقام الحزم 13 و14 و15 إلى أنّ الرسالة ينشئ المعالج اتصالاً بالخادم الوكيل من خلال بروتوكول التحكم بالنقل الثلاثي الاتجاه وعملية تأكيد الاتصال.
- في الحزمة 16، يتصل معالج الرسائل بمضيف الخادم الوكيل
httpbin.org
(الموضّحة في المثال أعلاه). اختَر الحزمة 16 وافحص محتوى الحزمة بالتفصيل وعلى وجه التحديد عنوان المضيف الذي يتم تمريره إلى الخادم الوكيل عن طريق الرسالة المعالج.
- يعرض النموذج أعلاه عنوان المضيف
httpin.org
، والذي هو اسم المضيف للخادم الوكيل. ومن ثم، عندما يحاول الخادم الوكيل إنشاء النفق مع خادم الخلفية من خلال إدخال عنوان المضيف أعلاهhttpin.org
، أخفق مع ظهور الخطأProxy refused to create tunnel with response status 403
.
- تأكَّد من أنّ السمة
الدقة
السيناريو: من المتوقع أن يتم فرض قيود جدار الحماية على الخادم الوكيل على عنوان المضيف تحتوي دائمًا على اسم المضيف لخادم الخلفية
إذا تأكدت من أن سبب هذا الخطأ هو أن جدار الحماية على خادم الخلفية بحيث تتوقع أنّ عنوان المضيف يجب أن يحتوي دائمًا على خادم خلفية اسم المضيف، بينما يرسل معالج الرسائل اسم مضيف الخادم الوكيل، ثم الخطوات التالية لحل المشكلة:
اضبط السمة
use.proxy.host.header.with.target.uri
على "صحيح" في TargetEndpoint كما هو موضح في المثال التالي:نموذج ضبط نقطة النهاية المستهدفة:
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>https://mocktarget.apigee.net/json</URL> <Properties> <Property name="use.proxy.host.header.with.target.uri">true</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
تأكد من أن الخصائص الأخرى المتعلقة الخادم الوكيل لإعادة التوجيه في معالج الرسائل على النحو التالي:
- مراجعة الملف
/opt/apigee/customer/application/message-processor.properties
في كل واحد من معالِجات معالجة الرسائل. تأكَّد من ضبط السمات التالية وفقًا لحالة الاستخدام أو المتطلبات:
القيم النموذجية للمواقع:
conf_http_HTTPClient.use.proxy=true conf/http.properties+HTTPClient.proxy.type=HTTP conf/http.properties+HTTPClient.proxy.host=PROXY_SERVER_HOST_NAME conf/http.properties+HTTPClient.proxy.port=PORT_# conf/http.properties+HTTPClient.proxy.user=USERNAME conf/http.properties+HTTPClient.proxy.password=PASSWORD
- مراجعة الملف
يجب جمع معلومات التشخيص
في حال استمرار المشكلة حتى بعد اتّباع التعليمات أعلاه، يُرجى جمع ما يلي معلومات التشخيص، ثم التواصل مع فريق دعم Apigee Edge:
إذا كنت من مستخدمي Cloud Private، يُرجى تقديم المعلومات التالية:
- ظهور رسالة خطأ كاملة للطلبات التي تعذّر تنفيذها
- اسم البيئة
- حزمة الخادم الوكيل لواجهة برمجة التطبيقات
- ملف تتبُّع طلبات البيانات من واجهة برمجة التطبيقات
سجلات وصول 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