استكشاف مشكلات خدمة التطبيقات وإصلاحها فيApplication Gateway

تعرف على كيفية تشخيص المشكلات التي قد تواجهها عند استخدام Azure App Service وحلها كهدف خلفي معAzure Application Gateway.

نظرة عامة

في هذه المقالة، ستتعرف على كيفية استكشاف المشكلات التالية وإصلاحها، كما هو موضح بمزيد من التفصيل في "مركز الهندسة المعمارية": الاحتفاظ باسم مضيف HTTP الأصلي بين وكيل عكسي وتطبيق الويب الخلفي الخاص به.

السبب الجذري للأعراض المذكورة أعلاه هو إعداد يتجاوز اسم المضيف كما هو مستخدم من قبل بوابة التطبيق نحو خدمة التطبيق إلى اسم مضيف مختلف كما يراه المستعرض. غالبا ما يتم تجاوز اسم المضيف إلى نطاق "azurewebsites.net" الافتراضي لخدمة التطبيقات.

Root cause - Application Gateway overwrites hostname to azurewebsites.net

تكوين العينة

في حالة تطابق التكوين الخاص بك مع أحد الحالتين التاليتين، يخضع الإعداد للإرشادات الواردة في هذه المقالة:

  • يتم تمكين اختيار اسم المضيف من عنوان الواجهة الخلفية في HTTP الإعدادات
  • يتم تعيين التجاوز باستخدام اسم نطاق معين إلى قيمة مختلفة عما يحتوي عليه طلب المستعرض

سبب

خدمة التطبيقات هي خدمة متعددة المستأجرين؛ لذا فهي تستخدم رأس المضيف في الطلب لتوجيه الطلب إلى نقطة النهاية الصحيحة. اسم المجال الافتراضي لخدمات التطبيقات، * .azurewebsites.net (على سبيل المثال: contoso.azurewebsites.net)، يختلف عن اسم مجال بوابة التطبيق (على سبيل المثال: contoso.com). تفتقد خدمة التطبيقات الخلفية إلى السياق المطلوب لإنشاء عنوان URL لإعادة التوجيه أو ملفات تعريف الارتباط التي تتوافق مع النطاق كما يراها المتصفح.

حل

الحل الموصى به من قبل الإنتاج هو تكوين بوابة التطبيق وخدمة التطبيق لعدم تجاوز اسم المضيف. اتبع الإرشادات الخاصة ب "مجال مخصص (مستحسن)" في تكوين خدمة التطبيق باستخدام بوابة التطبيق

فكر فقط في تطبيق حل بديل آخر (مثل إعادة كتابة رأس الموقع كما هو موضح أدناه) بعد تقييم الآثار المترتبة كما هو موضح في المقالة: احتفظ باسم مضيف HTTP الأصلي بين وكيل عكسي وتطبيق الويب الخلفي الخاص به. تتضمن هذه الآثار إمكانية بقاء ملفات تعريف الارتباط المرتبطة بالنطاق وعنوان URL المطلق خارج رأس الموقع مكسورا.

الحل البديل: إعادة كتابة رأس الموقع

تحذير

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

قم بتعيين اسم المضيف في رأس الموقع على اسم مجال بوابة التطبيق. للقيام بذلك، أنشئ ⁧⁩ قاعدة إعادة كتابة ⁧⁩ بشرط يقيم ما إذا كان رأس الموقع في الاستجابة يحتوي على azurewebsites.net. يجب أيضًا تنفيذ إجراء لإعادة كتابة رأس الموقع للحصول على اسم مضيف بوابة التطبيق. لمزيد من المعلومات، راجع الإرشادات حول ⁧⁩ كيفية إعادة كتابة رأس الموقع ⁧⁩.

ملاحظة

دعم إعادة كتابة رأس HTTP متاح فقط لـ ⁧⁩ Standard_v2 وWAF_v2 SKU ⁧⁩ لبوابة التطبيق. نوصي ⁧⁩ بالترحيل إلى الإصدار 2 ⁧⁩ لإعادة كتابة الرأس و⁧⁩ الإمكانات المتقدمة الأخرى ⁧⁩ المتوفرة مع v2 SKU.

الخطوات التالية

إذا لم تنجح الخطوات السابقة في حل المشكلة، فافتح ⁧⁩ بطاقة دعم ⁧⁩.