يمكن للوكيل العكسي توجيه نطاق واحد إلى التطبيق الخطأ عندما يتطابق مسار شامل جديد بشكل أوسع أو يتفوق على قاعدة المضيف المقصودة.
هذه الحالة أضيق نطاقًا من مشكلة إعادة توجيه عامة إلى نطاق خاطئ أو مشكلة DNS. الاختبار الأساسي هو ما إذا كان النطاق الصحيح لا يزال يصل إلى عنوان IP وشهادة الوكيل المتوقَّعين، لكن الوكيل لا يختار الواجهة الخلفية الخطأ إلا بعد إنشاء المسار الافتراضي الجديد. قارن تطابقات المسارات وأولوياتها قبل تغيير DNS أو عناوين URL الأساسية للتطبيق أو الشهادات.
أثبت أن القاعدة الشاملة غيّرت اختيار الواجهة الخلفية
أرسل الطلب نفسه إلى النطاق قبل تعطيل المسار الشامل أو الافتراضي الجديد وبعده، مع تعطيل هذا المسار وحده. سجّل سجل وصول الوكيل، والموجّه أو كتلة الخادم المختارة، وعنوان الواجهة الخلفية، ومؤشر الاستجابة، والشهادة.
يحذّر دليل عملي لإعداد خادم Nginx الافتراضي من أن القواعد الشاملة قد تستحوذ على حركة المرور حتى عند وجود عدة مضيفات افتراضية صريحة.
إذا أدّى تعطيل المسار الاحتياطي إلى استعادة التطبيق المقصود فورًا، فأبقِ DNS وتطبيق الواجهة الخلفية دون تغيير. تتمثل الخطوة التالية في جعل المسار المحدد هو الفائز دون إزالة السلوك الاحتياطي الآمن لأسماء المضيفين غير المعروفة.
تحقق مما إذا كانت قاعدة المضيف المحددة لا تزال تتطابق بدقة
قارن اسم المضيف المطلوب بقاعدة المسار المقصودة حرفيًا، بما في ذلك النطاق الفرعي، وحدود أحرف البدل، والنقاط الختامية في أدوات الاختبار، وما إذا كانت القاعدة تستمع إلى نقطة إدخال HTTP أو HTTPS نفسها التي يستمع إليها المسار الشامل.
يوضح دليل للوكيل العكسي متعدد التطبيقات أن قواعد أسماء المضيفين تختار واجهات خلفية مختلفة فقط عندما يتطابق المضيف الوارد مع القاعدة التي حمّلها الوكيل فعليًا.
أصلح مطابقة المضيف غير المكتملة أو المكتوبة خطأ قبل تعديل الأولوية. فرفع أولوية قاعدة لا تتطابق مطلقًا لا يؤدي إلا إلى جعل فهم الإعداد أكثر صعوبة.
قارن أولوية المسار بالمسار الشامل
بالنسبة إلى الوكلاء الذين يدعمون أولوية صريحة أو مشتقة، افحص أي قاعدة تفوز عندما يتطابق كل من المضيف المحدد والمسار الاحتياطي الواسع مع الطلب نفسه. سجّل القاعدة التي جرى تقييمها، وليس ترتيبها في ملف الإعداد فقط.
يمنح مثال لمسار شامل في Traefik المسار الاحتياطي عمدًا أولوية أقل من المسارات الفعلية، بحيث تُقيَّم الخدمات المحددة أولًا.
اجعل المسار الاحتياطي أدنى من كل مسار تطبيق مقصود، ثم أعد الاختبار. لا تحل المشكلة بإسناد أرقام ضخمة عشوائية إلى كل موجّه؛ حافظ على مخطط أولويات بسيط وموثّق يصمد أمام إضافة تطبيقات مستقبلية.
افحص الخادم الافتراضي في الوكلاء المشابهة لـ Nginx
في إعدادات Nginx والإعدادات المشابهة، حدّد كتلة الخادم التي تصبح افتراضية لعنوان الاستماع والمنفذ عند عدم العثور على تطابق لاسم المضيف. يمكن أن تصبح الكتلة المحمّلة أولًا هي المسار الاحتياطي إذا لم يُحدَّد افتراضي صريح.
تشرح مقالة مركّزة لاستكشاف أخطاء Nginx سبب وصول المضيفين غير المتطابقين إلى الخوادم الافتراضية بدل رفضهم بصمت.
استخدم استجابة افتراضية محايدة أو خدمة أخطاء بدلًا من جعل تطبيق فعلي هو المسار الاحتياطي. بهذه الطريقة، لا يمكن لاسم مضيف غير معروف أو مكتوب خطأ أن يكشف تطبيقًا آخر مستضافًا ذاتيًا عن طريق الخطأ.
تحقق من المسارات الاحتياطية لـ HTTP وHTTPS كلٌّ على حدة
لا يتصرف المسار الشامل المضاف للمنفذ 80 تلقائيًا بالطريقة نفسها على المنفذ 443. يمكن أن يؤدي توجيه TLS أو SNI أو نقاط الإدخال المنفصلة أو مسار شامل ثانٍ إلى وصول طلبات HTTPS وحدها إلى التطبيق الخطأ.
تصف حالة لاستكشاف أخطاء Caddy اختلاف سلوك المسار الشامل حسب البروتوكول، وتوضح سبب ضرورة اختبار المسار الخاص بكل بروتوكول مباشرة.
أرسل طلبًا عبر HTTP وآخر عبر HTTPS باستخدام اسم المضيف نفسه، وسجّل المعالج المختار. أصلح المسار الاحتياطي في نقطة الإدخال المتأثرة بدل تغيير مسار البروتوكول الذي يعمل بشكل صحيح.
أبقِ المسار الاحتياطي محايدًا وأعد اختبار كل نطاق معروف
بعد تصحيح نطاق المطابقة أو الأولوية، اجعل المسار الاحتياطي يعيد 404 أو 421 محايدًا أو صفحة خطأ مضبوطة بدل توجيه كل اسم مضيف غير معروف إلى تطبيق إنتاجي واحد. ثم اختبر كل نطاق معروف مستضاف ذاتيًا مرة واحدة.
تؤكد نظرة عامة على بنية الوكيل العكسي أن الوكيل هو من يقرر الواجهة الخلفية بعد وصول الطلب إليه، ولذلك لا تكفي صحة DNS وحدها لإثبات صحة التوجيه.
يكتمل الإصلاح عندما يصل كل اسم مضيف معروف إلى التطبيق المقصود، بينما يصل اسم المضيف غير المعروف إلى المسار الاحتياطي المحايد فقط. وتُعد مقالة ZimaSpace ذات الصلة حول إعادة توجيه الوكيل العكسي إلى نطاق آخر هي المسار التالي عندما يختار الوكيل الواجهة الخلفية الصحيحة، لكن التطبيق يغيّر النطاق لاحقًا.
الأسئلة الشائعة
هل يمكن لـ DNS أن يتسبب في فوز المسار الشامل؟
يمكن لـ DNS إرسال الطلب إلى عنوان IP خاطئ للوكيل، لكن بمجرد أن يستقبل الوكيل الصحيح اسم المضيف المقصود، يصبح تطابق المسار قرارًا يتخذه الوكيل. تحقّق من الطبقتين كلٌّ على حدة.
هل ينبغي أن يوجّه المسار الشامل إلى تطبيق لوحة تحكم؟
عادةً لا. فهدف الخطأ المحايد أكثر أمانًا، لأنه يمنع أخطاء الكتابة وأسماء المضيفين غير المعروفة من كشف تطبيق إدارة أو وسائط فعلي عن طريق الخطأ.
لماذا يصل HTTPS وحده إلى التطبيق الخطأ؟
قد يستخدم HTTPS مستمعًا مختلفًا أو مسار SNI أو موقع شهادة أو قاعدة احتياطية مختلفة عن HTTP. اختبر نقطتي الإدخال كلًّا على حدة قبل تغيير التوجيه العام.
الدعم والنصائح
المزيد للقراءة

هل يمكن لـ Plex مشاركة وحدة معالجة الرسومات (GPU) مع حاوية Docker أخرى؟
يمكن لـ Plex وحاوية أخرى غالبًا الوصول إلى وحدة معالجة الرسومات نفسها، لكن يجب اختبار دعم برنامج التشغيل، وتعيين الجهاز، وحِمل محرّك الفيديو، والذاكرة،...

كيفية معرفة ما إذا كان خطأ Plex ناتجًا عن العميل أم الخادم
أعِد إنتاج العنصر نفسه على عميل آخر، وقارن مسار الجلسة، ثم اجمع أدلة من الخادم فقط بعد أن يحدد النطاق موضع الفشل الفعلي.

كيفية إعداد ذاكرة التخزين المؤقت وموقع التخزين المؤقت لتحويل الترميز في Plex
احمِ حالة Plex الدائمة مع وضع الملفات المؤقتة للتحويل على مساحة تخزين محلية مناسبة، ثم تحقّق من التنظيف والمساحة الحرة وسلوك إعادة التشغيل.

