كيفية إصلاح الخطأ 502 Bad Gateway NGINX؟ (7 طرق)
نشرت: 2023-04-20إن Nginx هو خادم ويب مفتوح المصدر معروف جيدًا ويحظى بشعبية كبيرة بسبب أدائه وقابليته للتوسع والمرونة. ومع ذلك ، على غرار خوادم الويب الأخرى ، يمكن أن يواجه Nginx أخطاء تعيق قدرته على تقديم المحتوى للعملاء. أحد هذه الأخطاء هو الخطأ 502 Bad Gateway Nginx.
قد تكون مواجهة الأخطاء محبطة ومربكة للغاية ، خاصة إذا لم تكن ماهرًا تقنيًا. قد تصادف العديد من الأخطاء البارزة المماثلة ، مثل شاشة الموت البيضاء ، والخطأ في إنشاء اتصال قاعدة البيانات. ولكن 502 خطأ nginx بوابة سيئة هو واحد شائع جدا.
يمكن أن يكون هناك العديد من الأسباب المحتملة لحدوث هذا الخطأ ، وبالتالي هناك طرق مختلفة لتحري الخلل وإصلاحه. في هذا المنشور ، سنخبرك بما تعنيه 502 بوابة سيئة Nginx حقًا ، وأسبابها المحتملة وما هي أفضل طريقة لاستكشاف الأخطاء وإصلاحها يجب عليك اتباعها.
لنبدأ!
قراءة: 15 طريقة لإصلاح 502 خطأ بوابة سيئة على موقع الويب الخاص بك
ما هو 502 Bad Gateway Nginx Error؟
خطأ 502 Bad Gateway Nginx هو رمز حالة HTTP يمثل خادمًا يعمل كبوابة أو خادم وكيل يفشل في تلقي استجابة صحيحة من خادم رئيسي. في حالة Nginx ، يحدث خطأ 502 في البوابة السيئة عندما يتعذر على الخادم إنشاء اتصال بالخادم الرئيسي أو عندما يقوم الخادم الرئيسي بإرجاع استجابة غير صالحة.
يظهر هذا الخطأ بشكل شائع عند محاولة الوصول إلى موقع ويب أو تطبيق ويب يتم استضافته خلف وكيل عكسي أو موازن تحميل.
هناك أشكال متعددة لـ 502 Bad gateway Nginx Error قد تجدها في مواقع مختلفة. على سبيل المثال:
- خطأ HTTP 502- بوابة سيئة
- 502 خطأ في الوكيل
- 502 مدخل غير صالح
- 502 الخدمة محملة بشكل زائد مؤقتًا
- بروتوكول HTTP 502
- 502 بوابة غير صالحة NGINX
- خطأ 502
ما الذي يسبب خطأ 502 Bad Gateway Nginx؟
يمكن أن يكون هناك عدة أسباب لحدوث خطأ 502 Bad Gateway في Nginx ، ولكن فيما يلي بعض أكثر الأسباب شيوعًا المدرجة أدناه:
خادم الزائد
عندما يتلقى خادم الخلفية عددًا كبيرًا جدًا من الطلبات ، يمكن أن يصبح محملاً بشكل زائد ويفشل في الاستجابة خلال فترة المهلة. يؤدي هذا إلى حدوث خطأ 502 حيث يتعذر على الخادم الرئيسي تلبية طلب العميل. يمكن أن يؤدي تحديد حجم الخادم المناسب ، وتخصيص الموارد ، وموازنة الحمل ، وإستراتيجيات التوسع إلى منع التحميل الزائد للخادم.
قضايا الاتصال
- يمكن أن تتسبب مشكلات الاتصال في حدوث خطأ 502 Bad Gateway في Nginx عندما تكون هناك مشكلة في اتصال الشبكة بين الخادم الوكيل العكسي وخادم الواجهة الخلفية.
- يمكن أن يحدث هذا بسبب ازدحام الشبكة أو إعدادات الشبكة التي تمت تهيئتها بشكل خاطئ أو فشل الأجهزة.
- عندما يحاول الخادم الوكيل العكسي إعادة توجيه طلب إلى خادم الواجهة الخلفية ولكن لا يمكنه إنشاء اتصال ، فإنه يقوم بإرجاع خطأ 502 إلى العميل.
- يحدث الخطأ لأن الخادم الوكيل العكسي يعمل كوسيط بين العميل وخادم الواجهة الخلفية وغير قادر على الاتصال بخادم الواجهة الخلفية لتلبية طلب العميل.
- يمكن أن يساعد استكشاف أخطاء إعدادات الشبكة ، والتحقق من قواعد جدار الحماية ، ومراقبة حركة مرور الشبكة في حل المشكلة.
قضايا DNS
- يمكن أن تتسبب مشكلات DNS في حدوث خطأ 502 Bad Gateway في Nginx عندما يفشل تحليل DNS لخادم الواجهة الخلفية.
- يمكن أن يحدث هذا بسبب تكوينات DNS غير الصحيحة أو فشل خادم DNS أو مشكلات التخزين المؤقت لـ DNS.
- عندما يرسل العميل طلبًا إلى الخادم الوكيل العكسي ، يحتاج الخادم الوكيل العكسي إلى حل اسم المجال الخاص بخادم الواجهة الخلفية إلى عنوان IP.
- إذا فشل تحليل DNS ، فلن يتمكن خادم الوكيل العكسي من إعادة توجيه الطلب إلى خادم الواجهة الخلفية ، مما يؤدي إلى إرجاع خطأ 502 إلى العميل.
قراءة: ما هو DNS؟
قيود جدار الحماية
- يمكن أن تتسبب قيود جدار الحماية في حدوث خطأ 502 Bad Gateway في Nginx عندما يحظر جدار الحماية الاتصال بين الخادم الوكيل العكسي وخادم الواجهة الخلفية.
- يمكن أن يحدث هذا عندما يتم تكوين جدار الحماية لتقييد حركة المرور من وإلى عناوين IP أو المنافذ المحددة.
- عندما يحاول الخادم الوكيل العكسي الاتصال بخادم الواجهة الخلفية ، لكن جدار الحماية يمنع الاتصال ، فإنه يُعيد الخطأ 502 إلى العميل.
- يحدث هذا لأن الخادم الوكيل العكسي يعمل كوسيط بين العميل وخادم الواجهة الخلفية ولا يمكنه إنشاء اتصال بخادم الواجهة الخلفية لتلبية طلب العميل.
- لإصلاح المشكلات المتعلقة بجدار الحماية والتي تتسبب في حدوث خطأ 502 ، قد تحتاج إلى تعديل قواعد جدار الحماية للسماح بتدفق حركة المرور بين الخادم الوكيل العكسي وخوادم الواجهة الخلفية.
أخطاء البرامج
- قد يحدث خطأ 502 Bad Gateway بسبب خطأ في البرنامج أو التكوين الخاطئ في الخادم الوكيل العكسي أو الخادم الخلفي.
- يمكن أن يحدث هذا الخطأ بسبب أخطاء الترميز أو التهيئة الخاطئة لوحدات الخادم أو التطبيقات.
- إذا كان البرنامج أو التكوين الخاص بأي من الخادمين يحتوي على خطأ ، فقد يفشل في معالجة الطلبات أو الاستجابة خلال فترة المهلة ، مما يؤدي إلى إرجاع خطأ 502 إلى العميل.
- لإصلاح المشكلات المتعلقة بالبرنامج والتي تسببت في حدوث خطأ 502 ، قد تحتاج إلى فحص سجلات كل من الخادم الوكيل العكسي وخوادم الواجهة الخلفية لتحديد أي أخطاء أو رسائل تحذير.
يستغرق PHP-FMP وقتًا طويلاً للاستجابة
- يمكن أن يتسبب PHP-FPM (FastCGI Process Manager) في حدوث خطأ 502 Bad Gateway في Nginx عندما يفشل في الاستجابة خلال فترة المهلة أو يواجه خطأ فادحًا.
- يمكن أن يحدث هذا الخطأ بسبب عدم كفاية الموارد أو التكوين الخاطئ أو خطأ في كود PHP.
- PHP-FPM هي طريقة شائعة لتشغيل تطبيقات PHP في Nginx ، حيث يرسل Nginx الطلب إلى PHP-FPM ويعالج كود PHP ويعيد النتيجة إلى Nginx ، والذي يرسل الرد بعد ذلك إلى العميل.
- لإصلاح المشكلات المتعلقة بـ PHP-FPM ، قد تحتاج إلى ضبط تكوين PHP-FPM لزيادة عدد العمليات أو سلاسل المحادثات أو ضبط إعدادات المهلة.
- قد تحتاج أيضًا إلى فحص كود PHP لتحديد وإصلاح أي أخطاء أو مشكلات في الأداء.
- بالإضافة إلى ذلك ، يمكن أن تساعد مراقبة سجلات الخادم وموارد النظام في تحديد أي أنماط أو اتجاهات يمكن أن تشير إلى مشكلة أكبر في PHP-FPM.
قراءة: كيفية إصلاح خطأ مهلة بوابة HTTP 504؟
كيفية إصلاح 502 Bad Gateway Nginx؟
فيما يلي بعض أفضل الحلول التي يمكنك اتباعها لإصلاح الخطأ 502 Bad Gateway Nginx:
- تحقق من حالة Nginx
- تحقق من حالة خادم الخلفية
- تحقق من تكوين DNS
- تحقق من تكوين جدار الحماية
- زيادة حجم المخزن المؤقت
- أعد تشغيل خادم Nginx
- تحقق من حالة PHP-FPM
تحقق من حالة Nginx
أول شيء عليك القيام به هو التحقق مما إذا كان Nginx يعمل ويستجيب للطلبات أم لا. للقيام بذلك ، قم بتشغيل الأمر التالي الوارد أدناه:
1 |
systemctl status nginx |
إذا كان Nginx قيد التشغيل ، فستتلقى رسالة إخراج شيء مثل هذا ،
nginx.service - The nginx HTTP Server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-10-11 10:25:41 UTC; 1 days ago
Docs: https://httpd.nginx.org/docs/2.4/
إذا لم يكن Nginx قيد التشغيل ، فستتلقى رسالة إخراج شيء من هذا القبيل ،
nginx.service - The nginx HTTP Server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2022-10-11 10:25:41 UTC; 25s ago
Docs: https://httpd.nginx.org/docs/2.4/
الآن ، في حالة عدم تشغيل Nginx ، يجب عليك تشغيله مرة أخرى باستخدام الأمر التالي ،
systemctl start nginx
تحقق من حالة خادم الخلفية
- سجّل الدخول إلى الخادم الوكيل العكسي الذي يستضيف Nginx.
- افتح نافذة طرفية وقم بتشغيل الأمر التالي:
curl -I http://backend-server-ip-address/
• استبدل "backend-server-ip-address" بعنوان IP لخادم الواجهة الخلفية.
• تحقق من كود حالة HTTP في إخراج الأمر. إذا كان خادم الواجهة الخلفية يعمل بشكل صحيح ، يجب أن ترى رمز الحالة 200 OK.
• إذا تلقيت رمز حالة غير 200 ، فهذا يشير إلى احتمال وجود مشكلة في الخادم الخلفي. يمكنك إجراء مزيد من التحقيق في المشكلة عن طريق فحص سجلات خادم الواجهة الخلفية لتحديد أي أخطاء أو رسائل تحذير.
تحقق من تكوين DNS
إذا فشل تحليل DNS ، فلن يتمكن خادم الوكيل العكسي من إعادة توجيه الطلب إلى خادم الواجهة الخلفية ، مما يؤدي إلى إرجاع الخطأ 502 Bad Gateway إلى العميل. لذلك ، من المهم التحقق من صحة تكوين DNS لخادم الواجهة الخلفية.
للتحقق من تكوين DNS ، يمكنك تنفيذ الخطوات التالية:
- سجّل الدخول إلى الخادم الوكيل العكسي الذي يستضيف Nginx.
- افتح نافذة طرفية وقم بتشغيل الأمر التالي:
nslookup backend-server-domain-name
استبدل "backend-server-domain-name" باسم المجال الخاص بخادمك الخلفي.
• تحقق من إخراج الأمر للتحقق من إرجاع عنوان IP الصحيح لخادم الواجهة الخلفية.
- إذا كان إخراج الأمر يشير إلى فشل تحليل DNS ، فقد تكون هناك مشكلة في تكوين DNS. يمكنك إجراء مزيد من التحقيق في المشكلة عن طريق التحقق من إعدادات DNS لاسم المجال لخادم الواجهة الخلفية ، أو عن طريق الاتصال بمزود DNS للحصول على المساعدة.
تحقق من تكوين جدار الحماية
يُنصح بالتحقق من سجلات جدار الحماية بحثًا عن كتلة غير معتادة. أحيانًا تمنع جدران الحماية المواقع أو تحظرها. للتغلب على هذه المشكلة ، تحتاج إلى تعطيل جدران الحماية مؤقتًا والتحقق مما إذا كانت المشكلة قائمة أو تم حلها.
زيادة حجم المخزن المؤقت
تسمح زيادة حجم المخزن المؤقت لـ Nginx بتخزين المزيد من البيانات من استجابة الخادم ، مما يضمن أن الاستجابة كاملة وخالية من الأخطاء. لزيادة حجم المخزن المؤقت ، تحتاج إلى تحرير ملف تكوين Nginx وإضافة التوجيهات التالية.
-
proxy_buffer_size
: يحدد حجم كل مخزن مؤقت. القيمة الافتراضية هي عادة 4K. يمكنك زيادتها إلى قيمة أعلى بناءً على متطلبات الخادم الخاص بك. على سبيل المثال ، لتعيين حجم المخزن المؤقت على 16 كيلو بايت ، أضف السطر التالي إلى ملف التكوين الخاص بك:
proxy_buffer_size 16k;
-
proxy_buffers
: تعيين عدد المخازن المؤقتة لتخصيصها. القيمة الافتراضية هي عادة 8. يمكنك زيادتها إلى قيمة أعلى بناءً على متطلبات الخادم الخاص بك. على سبيل المثال ، لتعيين عدد المخازن المؤقتة على 32 وحجم المخزن المؤقت على 16 كيلو ، أضف السطر التالي إلى ملف التكوين الخاص بك:
proxy_buffers 32 16k;
ملاحظة: من المهم ملاحظة أن زيادة حجم المخزن المؤقت وعدد المخازن المؤقتة سيزيد من استخدام الذاكرة على الخادم. لذلك ، يجب عليك تجربة أحجام مختلفة للمخزن المؤقت وأرقامه للعثور على الإعداد الأمثل للخادم والتطبيق الخاصين بك.
- بعد إجراء التغييرات على ملف تكوين Nginx ، احفظ الملف وأعد تشغيل Nginx حتى تصبح التغييرات سارية المفعول. يمكنك القيام بذلك عن طريق تشغيل الأمر التالي:
sudo service nginx restart
أعد تشغيل خادم Nginx
في بعض الحالات ، قد تؤدي إعادة تشغيل خادم Nginx إلى حل الخطأ 502 بوابة سيئة Nginx. لفعل هذا،
تحتاج إلى تشغيل أمر في الجهاز الطرفي أو الصدفة. يعتمد الأمر الدقيق على نظام التشغيل والتوزيع الذي تستخدمه ، ولكن إليك بعض الأمثلة:
- Ubuntu و Debian:
sudo service nginx restart
- CentOS و Fedora و RHEL:
sudo systemctl restart nginx
- macOS :
sudo nginx -s reload
ستعمل هذه الأوامر على إعادة تشغيل خادم Nginx برشاقة ، مما يعني أنه سينتظر انتهاء أي اتصالات نشطة قبل الإغلاق والبدء من جديد.
تحقق من حالة PHP-FPM
في بعض الأحيان ، يمكن أيضًا تشغيل الخطأ 502 Bad Gateway Nginx بسبب عدم تشغيل PHP-FPM. لذلك ، من الضروري التحقق من حالة PHP-FPM للتأكد من أنها تعمل بشكل صحيح.
للتحقق من حالة التشغيل ، يمكنك استخدام الأمر التالي ،
sudo service php-fpm status
إذا كان PHP-FPM قيد التشغيل ، يجب أن ترى رسالة تفيد بأنه نشط.
ومع ذلك ، في حالة عدم تشغيل PHP-FPM ، يمكنك محاولة إعادة تشغيله باستخدام الأمر التالي:
sudo service php-fpm restart
سيقوم هذا الأمر بإعادة تشغيل خدمة PHP-FPM ، والتي يمكن أن تساعد في حل أي مشكلة قد تؤدي إلى ظهور خطأ 502 bad gateway Nginx.
ملخص
خطأ 502 Bad Gateway Nginx هو خطأ شائع قد يواجهه مستخدمو Nginx. يحدث هذا عادةً بسبب مشكلات الاتصال أو التحميل الزائد للخادم أو مشكلات DNS أو قيود جدار الحماية أو أخطاء البرامج.
ومع ذلك ، باتباع الخطوات الموضحة في هذه المقالة ، يمكنك استكشاف أخطاء 502 بوابة غير صالحة nginx وحلها.
إذا لم تنجح أي من الطرق المذكورة أعلاه معك ، ففكر للأسف في طلب المساعدة من منتديات Nginx أو مستشار Nginx ذو الخبرة العالية والمؤهل.
إذا كانت لديك أي نصائح أو اقتراحات بخصوص الخطأ 502 Bad Gateway Nginx الذي ربما فاتنا في هذا المنشور أو إذا كنت ترغب في مشاركة تجربتك بنفس الشيء ، فيرجى إخبارنا في قسم التعليقات أدناه. نحن نرحب بمدخلاتكم.
قراءة: كيفية إصلاح خطأ الخادم الداخلي HTTP 500 في WordPress؟
أسئلة مكررة
كيف أصلح 502 Bad gateway nginx؟
يمكنك إصلاح الخطأ 502 Bad Gateway nginx باتباع الطرق التالية:
1. تحقق من حالة Nginx
2. تحقق من حالة خادم الخلفية
3. تحقق من تكوين DNS
4. تحقق من تكوين جدار الحماية
5. زيادة حجم المخزن المؤقت
6. أعد تشغيل خادم Nginx
7. تحقق من إحصائيات PHP-FPM
كيف أتحقق من حالة nginx الخاصة بي؟
للتحقق من حالة nginx ، قم بتشغيل الأمر التالي الوارد أدناه:
nginx حالة systemctl
سيوضح الإخراج ما إذا كان nginx يعمل أم لا.
ما هو الخطأ 502 Bad Gateway؟
خطأ 502 Bad Gateway Nginx هو رمز حالة HTTP يمثل خادمًا يعمل كبوابة أو خادم وكيل يفشل في تلقي استجابة صحيحة من خادم رئيسي.