استكشاف أخطاء HTTP من "502 بوابة غير صحيحة" و"خدمة 503 غير متوفرة" في Azure App Service
"502 بوابة غير صالحة" و"503 خدمة غير متوفرة" هي أخطاء شائعة في تطبيقك المستضاف في Azure App Service. تساعدك هذه المقالة في استكشاف هذه المشكلات وإصلاحها.
إذا كنت بحاجة إلى مزيدٍ من المساعدة في أي وقت في هذه المقالة، فيمكنك الاتصال بخبراء Azure على منتديات MSDN Azure وStack Overflow. أو بدلاً من ذلك، يمكنك أيضًا تقديم حدث دعم Azure. انتقل إلى موقع دعم Azure وانقر فوق الحصول على الدعم.
العرض
عند الاستعراض وصولاً إلى التطبيق، فإنه يقوم بإرجاع خطأ HTTP "502 Bad Gateway" أو خطأ HTTP "503 Service Unavailable".
السبب
غالبًا ما تحدث هذه المشكلة بسبب مشكلات على مستوى التطبيق، مثل:
- طلبات تستغرق وقتاً طويلاً
- تطبيق يستخدم ذاكرة عالية/ وحدة المعالجة المركزية
- تعطل التطبيق بسبب استثناء.
خطوات استكشاف الأخطاء وإصلاحها لحل أخطاء "502 بوابة غير صحيحة" و"503 خدمة غير متوفرة"
يمكن تقسيم استكشاف الأخطاء وإصلاحها إلى ثلاث مهام مميزة، بترتيب تسلسلي:
يمنحك App Service خيارات مختلفة في كل خطوة.
1. ملاحظة سلوك التطبيق ومراقبته
تعقب صحة الخدمة
يقوم Microsoft Azure بالنشر في كل مرة يكون فيها انقطاع الخدمة أو تدهور الأداء. يمكنك تتبع صحة الخدمة على مدخل Microsoft Azure. لمزيد من المعلومات، راجع تعقب صحة الخدمة.
مراقبة التطبيق الخاص بك
يُمكّنك هذا الخيار من معرفة ما إذا كان التطبيق الخاص بك لديه أي مشكلات. في جزء التطبيق، انقر فوق لوحة الطلبات والأخطاء. سيعرض لك جزء القياس جميع المقاييس التي يمكنك إضافتها.
بعض المقاييس التي قد ترغب في مراقبتها لتطبيقك هي
- متوسط مجموعة العمل للذاكرة
- متوسط وقت الاستِجابة
- زمن وحدة المعالجة المركزية
- مجموعة العمل للذاكرة
- الطلبات
لمزيد من المعلومات، راجع:
2. جمع البيانات
استخدم أداة التشخيص
يوفر App Service تجربة ذكية وتفاعلية لمساعدتك في استكشاف أخطاء تطبيقك وإصلاحها دون الحاجة إلى تكوين. عندما تواجه مشكلات في تطبيقك، سوف تشير أداة التشخيص إلى الخطأ لإرشادك إلى المعلومات الصحيحة لاكتشاف المشكلة وحلها بسهولة أكبر وبسرعة.
للوصول إلى تشخيصات App Service، انتقل إلى تطبيق App Service أو App Service Environment في مدخل Microsoft Azure. في التنقل الأيمن، انقر فوق تشخيص وحل المشكلات.
استخدام Kudu Debug Console
تأتي App Service مزودة بوحدة تحكم تصحيح الأخطاء التي يمكنك استخدامها لاستكشاف الأخطاء وإصلاحها وتحميل الملفات، بالإضافة إلى نقاط نهاية JSON للحصول على معلومات حول بيئتك. يسمى هذا Kudu Console أو لوحة معلومات SCM الخاصة بتطبيقك.
يمكنك الوصول إلى لوحة المعلومات هذه عن طريق الانتقال إلى الارتباط https://<Your app name>.scm.azurewebsites.net/.
بعض الأشياء التي يوفرها Kudu هي:
- إعدادات البيئة للتطبيق الخاص بك
- دفق السجل
- تفريغ التشخيص
- وحدة تحكم تتبع الأخطاء التي يُمكنك فيها تشغيل أوامر PowerShell cmdlets وأوامر DOS الأساسية.
ميزة أخرى مفيدة من Kudu هي أنه في حالة طرح التطبيق الخاص بك استثناءات الفرصة الأولى، يمكنك استخدام Kudu وأداة SysInternals Procdump لإنشاء تفريغ الذاكرة. تعتبر عمليات تفريغ الذاكرة هذه لقطات للعملية ويمكن أن تساعدك غالباً في استكشاف المشكلات الأكثر تعقيداً في تطبيقك وإصلاحها.
لمزيدٍ من المعلومات حول الميزات المتوفرة في Kudu، راجع أدوات Azure Websites عبر الإنترنت التي يجب أن تعرفها.
3. التخفيف من حدة المشكلة
تغيير حجم التطبيق
في Azure App Service، لزيادة الأداء ومعدل النقل، يُمكنك ضبط الحجم الذي تقوم بتشغيل تطبيقك عليه. يتضمن تحجيم التطبيق إجراءين مرتبطين: تغيير خطة App Service إلى طبقة أسعار أعلى، وتكوين إعدادات معينة بعد التبديل إلى طبقة الأسعار الأعلى.
لمزيدٍ من المعلومات حول التحجيم، راجع تغيير حجم تطبيق في Azure App Service.
بالإضافة إلى ذلك، يُمكنك اختيار تشغيل التطبيق الخاص بك على أكثر من مثيل واحد. لا يوفر لك هذا فقط المزيد من إمكانية المعالجة، ولكنه يمنحك أيضاً قدراً من التسامح مع الخطأ. إذا تعطلت العملية في مثيل واحد، فسيستمر المثيل الآخر في تقديم الطلبات.
يمكنك تعيين التحجيم ليكون يدوياً أو تلقائياً.
استخدام AutoHeal
يقوم AutoHeal بإعادة تدوير عملية العامل لتطبيقك استنادًا إلى الإعدادات التي تختارها (مثل تغييرات التكوين أو الطلبات أو الحدود المستندة إلى الذاكرة أو الوقت اللازم لتنفيذ الطلب). في معظم الأوقات، تُعد إعادة تدوير العملية هي أسرع طريقة للتعافي من المشكلة. على الرغم من أنه يمكنك دائماً إعادة تشغيل التطبيق مباشرةً من داخل مدخل Azure، إلا أن AutoHeal سيقوم بذلك تلقائياً نيابة عنك. كل ما عليك القيام به هو إضافة بعض المشغلات في web.config الجذر لتطبيقك. لاحظ أن هذه الإعدادات ستعمل بنفس الطريقة حتى لو لم يكن التطبيق الخاص بك من أحد برامج .NET.
لمزيد من المعلومات، راجع المعالجة التلقائية لمواقع الويب في Azure.
إعادة تشغيل التطبيق
غالباً ما تكون هذه هي أبسط طريقة للتعافي من المشكلات التي تحدث لمرة واحدة. في مدخل Azure، في جزء التطبيق الخاص بك، لديك خيارات لإيقاف تطبيقك أو إعادة تشغيله.
يمكنك أيضًا إدارة تطبيقك باستخدام Azure PowerShell. لمزيد من المعلومات، راجع استخدام Azure PowerShell مع Azure Resource Manager.