إنشاء صفحات خطأ مخصصة لبوابة التطبيق
تسمح لك بوابة التطبيق بإنشاء صفحات خطأ مخصصة بدلا من عرض الصفحات الافتراضية. يمكنك استخدام العلامة التجارية والتخطيط للأخطاء المتعلقة برموز الاستجابة المختلفة. بعض السيناريوهات لإعداد صفحات الخطأ المخصصة هي
- إظهار صفحة صيانة أو حالة لرمز استجابة بوابة غير صحيحة 502. يكون هذا مفيدا عندما لا تحتوي بوابة التطبيق على خادم خلفي لتوجيه نسبة استخدام الشبكة إلى أثناء الصيانة المجدولة أو مشكلة غير متوقعة مع خوادم تجمع الخلفية.
- إظهار صفحة وصول غير مصرح بها مخصصة للتعليمات البرمجية للاستجابة المحظورة 403 التي تحدث عندما يكون WAF في وضع الوقاية ويحظر حركة المرور الضارة.
- إظهار صفحة تحمل علامة تجارية للشركة مع تفاصيل جهة الاتصال في حالة حدوث مشكلة.
رموز الاستجابة المدعومة
يتم دعم صفحات الخطأ المخصصة برموز الاستجابة التالية:
الاستجابة للتعليمة البرمجية | الوصف |
---|---|
400 | طلب غير صالح |
403 | محظور |
405 | الأسلوب غير مسموح به |
408 | انتهي وقت الطلب |
500 | خطأ خادم داخلي |
502 | مدخل خطأ |
503 | الخدمة غير متوفرة |
504 | مهلة البوابة |
إشعار
- يجب استخدام إصدار واجهة برمجة التطبيقات 2022-09-01 أو أحدث لتكوين صفحات الخطأ لجميع رموز الاستجابة المتوفرة.
- رمز الاستجابة 404 (لم يتم العثور على الصفحة) غير مدعوم حاليا.
- يتم عرض صفحات الخطأ المخصصة برموز الاستجابة التي تم إنشاؤها بواسطة Application Gateway. إذا نشأ خطأ من الخادم الخلفي، يتم تمريره إلى العميل دون تعديل.
مستويات التكوين
يمكن تعريف صفحات الخطأ المخصصة على مستوى Global أو Listener:
- المستوى العمومي - يتم تطبيق صفحات الخطأ التي تم تعيينها على مستوى عمومي على جميع المستمعين لبوابة التطبيق هذه. تكوينه من خلال مدخل Microsoft Azure غير مدعوم حاليا.
- مستوى وحدة الاستماع - تمنحك صفحات الخطأ على مستوى وحدة الاستماع تحكما دقيقا لتعيين صفحات الخطأ للتطبيق الذي يقدمه هذا المستمع.
إشعار
عند استخدام مجموعة من صفحات الخطأ العمومية وصفحات الخطأ على مستوى المستمع لبوابة، يجب أن تذكر صراحة عناوين URL لجميع رموز الاستجابة المطلوبة لهذا المستمع. يتجاوز التكوين الخاص بوحدة الاستماع جميع التكوينات العمومية السابقة القابلة للتطبيق على وحدة الاستماع هذه.
المتطلبات
لإنشاء صفحة خطأ مخصصة، يجب عليك
- تعرف على رمز الاستجابة المطلوب لصفحة خطأ مخصصة.
- تعرف على الموقع البعيد المقابل (URL) لصفحة HTML. يجب أن يكون هذا ملفا يمكن الوصول إليه بشكل عام.
- تأكد من إمكانية الوصول إلى صفحة الخطأ بشكل عام وإرجاع استجابة 200.
- تأكد من أن صفحة الخطأ يجب أن تكون في نوع ملحق *.htm أو *.html.
- تأكد من أن حجم الصفحة أقل من 1 ميغابايت.
- تأكد من تعيين إعدادات الوصول إلى الشبكة إلى "ممكنة من جميع الشبكات" عند استخدام حساب تخزين Azure Blob.
يمكنك الرجوع إلى الصور/CSS الداخلية أو الخارجية لملف HTML هذا. أما بالنسبة إلى الموارد المشار إليها خارجيًا، فاستخدم عناوين URL المطلقة التي يمكن الوصول إليها بشكل عام. كن على دراية بحجم ملف HTML عند استخدام الصور المضمنة المرمزة ب base64 أو JavaScript أو CSS.
إشعار
- ضمن النظام البنائي Azure، يجب استخدام حساب تخزين Azure Blob أو الجهاز الظاهري لاستضافة صفحة خطأ. لاحظ أنه يجب أن يكون تخزين Blob قابلا للوصول مباشرة لأن حسابات التخزين الأمامية لخدمات Azure CDN غير مدعومة حاليا.
- يمكنك أيضا اختيار استضافة صفحات الخطأ في أي موقع بعيد.
- الارتباطات النسبية غير معتمدة.
كيف يعمل؟
بعد تحديد صفحة خطأ في تكوين بوابة التطبيق، تتحقق بوابتك من الاتصال بصفحة HTML عبر الإنترنت. ثم يقوم بتنزيل الملف على ذاكرة التخزين المؤقت المحلية الخاصة به.
عندما يواجه عميل خطأ، تقوم بوابة التطبيق بإرجاع رمز استجابة وصفحة HTML هذه. يتم جلب أي موارد مرجعية خارجيا (مثل الصور وملفات JavaScript وCSS) مباشرة من قبل العميل.
لا تتحقق بوابة التطبيق بشكل دوري من موقع الملف المصدر لإحضار إصدار جديد. يمكنك إجراء أي تحديث تكوين على البوابة لتحديث ذاكرة التخزين المؤقت للملف يدويا. على سبيل المثال، تغيير عنوان URL للخطأ من الصفحة 1 إلى الصفحة 2 ثم العودة إلى الصفحة 1، أو عند إضافة وحدة استماع جديدة.
التكوين للمدخل
خطوات تكوين صفحات الخطأ المخصصة الخاصة بوحدة الاستماع:
انتقل إلى Application Gateway في المدخل واختر المورد المطلوب.
حدد المستمعين وانتقل إلى وحدة استماع معينة تريد تحديد صفحة خطأ لها.
ضمن قسم صفحات الخطأ المخصصة، حدد عناوين URL التي يمكن الوصول إليها بشكل عام برموز الحالة المطلوبة.
حدد حفظ.
تكوين Azure PowerShell
يمكنك استخدام Azure PowerShell لتكوين صفحة الخطأ المخصصة. على سبيل المثال، صفحة الخطأ المخصصة العمومية:
$appgw = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>
$updatedgateway = Add-AzApplicationGatewayCustomError -ApplicationGateway $appgw -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"
Set-AzApplicationGateway -ApplicationGateway $appgw
أو صفحة الخطأ لمستوى وحدة الاستماع:
$appgw = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>
$listener01 = Get-AzApplicationGatewayHttpListener -Name <listener-name> -ApplicationGateway $appgw
$updatedlistener = Add-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener01 -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"
Set-AzApplicationGateway -ApplicationGateway $appgw
لمزيد من المعلومات، راجع Add-AzApplicationGatewayCustomError وAdd-AzApplicationGatewayHttpListenerCustomError.
الخطوات التالية
للحصول على معلومات حول تشخيصات بوابة التطبيق، راجع صحة الواجهة الخلفية وسجلات التشخيص والمقاييس لبوابة التطبيق.