كيفية إصلاح رسائل خطأ Nginx الشائعة: دليل خطوة بخطوة

نشرت: 2023-06-05

ما هو خطأ NGINX؟

يشير خطأ Nginx إلى زوبعة أو خلل يحدث أثناء استخدام خادم الويب Nginx. Nginx هو خادم الويب الأكثر استخدامًا ، والذي تعتمد عليه معظم مواقع الويب. ومع ذلك ، مثل أي برنامج ، يمكن أن يواجه أخطاء قد تعطل الأداء السلس لموقع الويب الخاص بك.

على سبيل المثال ، فكر في الأمر على أنه نتوء في الطريق يمكن أن يقطع الأداء الطبيعي لموقع الويب الخاص بك أو أي تطبيق ويب. نظرًا لكون Nginx نظام برمجي شديد التعقيد ، فقد يواجه أحيانًا مشكلات ناتجة عن عوامل مختلفة. مثل الإعدادات غير الصحيحة أو المشكلات التي تحدث من جانب الخادم أو مشكلات الشبكة أو حتى الأخطاء التي يرتكبها العميل.

يمكن أن تظهر أخطاء Nginx في أشكال مختلفة ، قد تكون معتادًا على بعضها. على سبيل المثال ، تتضمن هذه الأخطاء 502 Bad Gateway Error nginx و 404 Not Found Error و 503 Service Unavailable Error و 504 Gateway Timeout Error بالإضافة إلى أخطاء إعادة التوجيه (301 و 302).

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

في هذا الدليل الشامل ، سنبحث في أخطاء Nginx الشائعة ، ونستكشف أسبابها ، ونوفر حلولًا عملية لمساعدتك في استكشاف هذه المشكلات وحلها بفعالية.


جدول المحتويات
ما هو خطأ NGINX؟
بعض الأنواع الشائعة لأخطاء Nginx
ما الذي يسبب خطأ NGINX؟
كيف يمكنني إصلاح خطأ NGINX؟
كيفية منع أخطاء Nginx المستقبلية؟
ملخص
أسئلة مكررة

بعض الأنواع الشائعة لأخطاء Nginx

يمكن أن تنشأ أخطاء Nginx من مصادر مختلفة ، بما في ذلك التكوينات الخاطئة أو مشكلات من جانب الخادم أو مشكلات الشبكة أو طلبات العميل. دعنا نلقي نظرة على بعض أنواع أخطاء Nginx الشائعة التي قد تواجهها:

رسائل وحلول أخطاء Nginx الشائعة:

1. 502 خطأ في بوابة غير صالحة:

  • الأسباب: يحدث هذا الخطأ غالبًا عندما يعمل Nginx كوكيل ويفشل في تلقي استجابة صحيحة من خادم رئيسي.
  • الحلول: لحل هذه المشكلة ، تحقق من تكوين الخادم الرئيسي ، وتحقق من اتصال الشبكة ، وتأكد من أن الخادم يعمل.

اقرأ: كيفية إصلاح الخطأ 502 Bad Gateway NGINX؟ (7 طرق)


2. 404 خطأ غير موجود:

عندما تزور موقع ويب تم تكوينه بواسطة Nginx ، تم توصيله بخادم موقع الويب بنجاح ولكنه لم يتمكن من العثور على الموارد المطلوبة مثل أي اسم ملف أو عنوان URL. ويتم تشغيل هذا النوع من رسائل الخطأ بشكل عام بسبب مشكلات في ملف التكوين.

  • الأسباب: يشير هذا الخطأ إلى أن المورد المطلوب غير موجود على الخادم.
  • الحلول: لمعالجة هذا الأمر ، تحقق من وجود ملف أو دليل nginx.conf ، وراجع تكوين عنوان URL ، وتحقق من مشكلات حساسية الحالة.

قراءة: كيفية إصلاح خطأ 404 لم يتم العثور على خطأ لموقع WordPress و Android؟


3. 503 خطأ غير متوفر في الخدمة:

  • الأسباب: يحدث هذا الخطأ عندما يتعذر على الخادم مؤقتًا معالجة الطلبات.
  • الحلول: لمعالجة هذه المشكلة ، تحقق من تحميل الخادم ، أو أعد تشغيل Nginx ، أو قم بتحليل صحة خوادم الواجهة الخلفية ، أو نفذ آليات التخزين المؤقت المناسبة.

قراءة: كيفية إصلاح "خدمة خطأ HTTP 503 غير متوفرة"؟


4. 504 خطأ في مهلة البوابة (تابع):

  • الأسباب: يحدث هذا الخطأ عادةً عندما يفشل الخادم الرئيسي في الاستجابة خلال فترة زمنية محددة.
  • الحلول: لحل هذه المشكلة ، تحقق من تكوين الخادم الرئيسي ، وتأكد من الاتصال المناسب بالشبكة ، واضبط إعدادات المهلة في Nginx للسماح بأوقات استجابة أطول إذا لزم الأمر.

قراءة: كيفية إصلاح خطأ مهلة بوابة HTTP 504؟


5. قضايا إعادة التوجيه 301 و 302:

  • الأسباب: تحدث هذه الأخطاء عند وجود مشكلات في إعادة توجيه عنوان URL ، مثل التكوينات أو الحلقات غير الصحيحة في عملية إعادة التوجيه.
  • حلول:
  • تحقق من تكوين Nginx: افحص ملفات تكوين Nginx للتأكد من أن قواعد إعادة التوجيه محددة بشكل صحيح. عادةً ما يكون ملف التكوين موجودًا في /etc/nginx/nginx.conf أو في ملف منفصل داخل الدليل /etc/nginx/conf.d/ .
  • تحقق من تكوين كتلة الخادم: ضمن ملف التكوين ، حدد موقع كتلة الخادم التي تتوافق مع المجال المتأثر أو المضيف الظاهري. تأكد من تعيين server_name المناسب للتوجيه على اسم المجال الصحيح.
  • راجع قواعد إعادة التوجيه: افحص كتل location أو كتل server التي تحدد قواعد إعادة التوجيه. تأكد من تكوين توجيهات rewrite أو return بشكل صحيح لإعادة توجيه الطلبات إلى الموقع المطلوب. انتبه إلى التعبيرات العادية وعناوين URL المقصودة.
  • أعد تشغيل Nginx : بعد إجراء أي تغييرات على ملفات التكوين ، تحتاج إلى إعادة تشغيل خدمة Nginx لتطبيق التغييرات. استخدم الأمر التالي لإعادة تشغيل Nginx:

sudo service nginx restart

  • مسح ذاكرة التخزين المؤقت للمتصفح : في بعض الأحيان ، تقوم المتصفحات بتخزين استجابات إعادة التوجيه مؤقتًا. امسح ذاكرة التخزين المؤقت للمتصفح أو حاول الوصول إلى موقع الويب في نافذة خاصة أو متخفية للتأكد من أن ذاكرة التخزين المؤقت لا تتداخل مع إعادة التوجيه.
  • اختبار إعادة التوجيه : افتح متصفح الويب وحاول الوصول إلى عنوان URL الذي يجب أن يؤدي إلى إعادة التوجيه. تحقق من أن إعادة التوجيه تعمل بالشكل المتوقع وأنه تم الوصول إلى الوجهة المطلوبة.
  • تحقق من السجلات بحثًا عن الأخطاء: إذا كانت إعادة التوجيه لا تزال لا تعمل ، فراجع سجلات أخطاء Nginx ( /var/log/nginx/error.log ) بحثًا عن أي رسائل خطأ ذات صلة. يمكن أن توفر السجلات معلومات قيمة لتحديد سبب المشكلة.

باتباع هذه الخطوات ، يجب أن تكون قادرًا على تشخيص وإصلاح مشكلات إعادة التوجيه الشائعة في Nginx.


ما الذي يسبب خطأ NGINX؟

يمكن أن تحدث أخطاء Nginx بسبب عوامل مختلفة ، بما في ذلك:

  • بناء الجملة: يمكن أن يؤدي التركيب غير الصحيح في ملفات تكوين Nginx إلى حدوث أخطاء.
  • مشكلات من جانب الخادم: يمكن أن تؤدي المشكلات الموجودة على الخادم حيث يعمل Nginx ، مثل التحميل العالي أو الموارد غير الكافية ، إلى حدوث أخطاء.
  • مشاكل الشبكة: يمكن أن تؤدي المشكلات المتعلقة باتصال الشبكة أو دقة DNS أو إعدادات جدار الحماية إلى حدوث أخطاء Nginx.
  • طلبات العميل: قد تؤدي الطلبات غير الصالحة أو المشوهة من العملاء إلى إرجاع Nginx للأخطاء.
  • مشكلات الخادم الرئيسي: إذا كان Nginx يعمل كخادم وكيل ويقوم بإعادة توجيه الطلبات إلى الخوادم الخلفية ، فقد تحدث أخطاء إذا كانت الخوادم الرئيسية لا تستجيب بشكل صحيح.

من المهم تحديد السبب المحدد لخطأ Nginx من أجل تطبيق الحل المناسب وحل المشكلة بفعالية.


كيف يمكنني إصلاح خطأ NGINX؟

الآن بعد أن رأيت بعض أخطاء NGINX الشائعة ، قد يكون لديك سؤال في الاعتبار: "كيف يمكنني إصلاح خطأ NGINX؟"

حسنًا ، الإجابة ليست صعبة كما قد تبدو. هناك العديد من طرق استكشاف الأخطاء وإصلاحها المتاحة لأخطاء NGINX. ومع ذلك ، من المهم ملاحظة أن طرق استكشاف الأخطاء وإصلاحها هذه هي فقط للمرحلة الأولية. مطلوب مزيد من التحقيق لتحديد السبب الدقيق للمشكلة.

هناك ثلاثة أوامر أساسية يمكن أن تساعدك في بدء رحلة استكشاف الأخطاء وإصلاحها لأخطاء NGINX.

  • احصل على سجل الأخطاء وتفاصيل المشكلة باستخدام هذا الأمر: sudo cat /var/log/nginx/error.log
  • لفحص حالة Nginx النشطة: sudo systemctl status nginx
  • لفحص أخطاء بناء الجملة في ملف التكوين: sudo nginx -t

1. استكشاف أخطاء Nginx وإصلاحها باستخدام سجلات الأخطاء

عندما تواجه مشكلة في NGINX ، فإن معظم أخطاء NGINX هذه غامضة ، وليس من السهل اكتشاف المشكلة الفعلية ببساطة. يمكن أن يحدث الخطأ بسبب مشكلة أكبر أو قد يكون غير ذي صلة على الإطلاق.

يعتمد كل هذا على كيفية تكوين إعداد NGINX الخاص بك والموقف المحدد الذي تواجهه.

للحصول على فهم أفضل لأخطاء NGINX التي تحدث ، يمكنك تشغيل أمر لعرض قائمة بهذه الأخطاء. هذا هو الأمر:

sudo cat /var/log/nginx/error.log

لتشغيل هذا الأمر ، يجب أن تكون مستخدمًا ذا امتياز. من المستحسن أن يكون لديك وصول sudo بدلاً من استخدام مستخدم الجذر.

يسمح لك هذا الأمر بقراءة محتويات الملف /var/log/nginx/error.log بالكامل ، والذي يحتوي على سجلات أخطاء NGINX. سيعرض هذه السجلات في نافذة جهازك.

من خلال تشغيل هذا الأمر ، ستتمكن من رؤية قائمة بأخطاء NGINX التي تم تسجيلها. تذكر شيئًا واحدًا إذا لم يتم تسجيل أخطاء في السجل ، فلن ترى أي إخراج عند تشغيل الأمر.

فيما يلي مثال على سجل أخطاء للرجوع إليه ،

2023/05/31 10:15:23 [error] 1234#0: *1 open() "/var/www/html/missing-page.html"
failed (2: No such file or directory), client: 192.168.0.1, server: example.com,
request: "GET /nonexistent-page HTTP/1.1", host: "example.com"

2023/05/31 12:45:57 [error] 1234#0: *2 upstream timed out (110: Connection timed out)
while reading response header from upstream, client: 192.168.0.2, server:
example.com, request: "GET /api/data HTTP/1.1", upstream:
"http://127.0.0.1:8000/api/data", host: "example.com"

2023/05/31 15:22:10 [error] 1234#0: *3 rewrite or internal redirection cycle while internally redirecting to "/index.php", client: 192.168.0.3, server: example.com, request: "GET /category/products/ HTTP/1.1", host: "example.com"

في هذا المثال ، يمثل كل سطر خطأ منفصل تم تسجيله بواسطة NGINX. دعنا نقسم المعلومات المقدمة:

  • الطابع الزمني: يُظهر الجزء الأول من كل سطر التاريخ والوقت اللذين حدث فيهما الخطأ ، بتنسيق YYYY/MM/DD HH:MM:SS .
  • مستوى الخطأ: تشير العلامة [error] إلى أن هذا السطر يمثل خطأ.
  • معرّف العملية: الرقم بعد الرمز # (على سبيل المثال ، 1234#0 ) يمثل معرّف عملية NGINX الذي يعالج الطلب.
  • رسالة الخطأ: توفر رسالة الخطأ تفاصيل حول الخطأ المحدد. يتضمن معلومات مثل ملف أو فشل الوصول إلى المورد أو مهلات الاتصال الأولية أو مشكلات إعادة التوجيه الداخلية.
  • عنوان IP للعميل: يعرض حقل client عنوان IP الخاص بالعميل الذي يقوم بالطلب إلى الخادم.
  • اسم الخادم: يشير حقل server إلى اسم الخادم أو المضيف الظاهري الذي حدث فيه الخطأ.
  • تفاصيل الطلب: يعرض حقل request طريقة HTTP وعنوان URL المطلوب وإصدار البروتوكول المستخدم من قبل العميل.
  • المضيف: يحدد حقل host اسم المضيف أو عنوان IP المستخدم في الطلب.

يساعد كل إدخال في سجل الأخطاء في تشخيص المشكلات واستكشاف الأخطاء وإصلاحها من خلال توفير معلومات حول نوع الخطأ والمورد المتأثر وعنوان IP للعميل والتفاصيل الأخرى ذات الصلة.

2. استكشاف أخطاء NGINX وإصلاحها عن طريق التحقق من حالتها

هناك طريقة أخرى يمكنك محاولة استكشاف أخطاء NGINX بها وإصلاحها وهي التحقق من حالتها ، أي ما إذا كانت نشطة أم لا. هناك احتمال أنه ، لأسباب معينة ، لا يمكن إكمال عملية التثبيت أو أن الخدمة ليست نشطة بعد.

للتحقق من حالة خدمة NGINX ، استخدم الأمر التالي:

sudo systemctl status nginx

إذا كانت خدمة NGINX نشطة ، فسيكون الإخراج كما يلي ؛

nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset:
enabled)
Active: active (running) since Mon 2023-05-31 14:30:00 UTC; 5min ago
Docs: http://nginx.org/en/docs/
Process: 1234 ExecStart=/usr/sbin/nginx -g daemon on;
master_process on;
(code=exited, status=0/SUCCESS)
Main PID: 1234 (nginx)
Tasks: 2 (limit: 2319)
Memory: 3.9M
CGroup: /system.slice/nginx.service
├─1234 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─5678 nginx: worker process

وإذا كانت حالة NGINX غير نشطة ، فسيتم إخراج حالة sudo systemctl nginx ، سيشير الأمر إلى أن الخدمة غير نشطة أو متوقفة على النحو التالي.

nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Docs: http://nginx.org/en/docs/

إذا كان الأمر كذلك ، فإن الشيء الوحيد الذي عليك القيام به هو إعادة تشغيل خدمة NGINX باستخدام هذا الأمر:

sudo systemctl restart nginx

بعد ذلك ، يمكنك استخدام الأمر status مرة أخرى للتحقق مما إذا كانت خدمة NGINX نشطة الآن أم لا.

3. استكشاف أخطاء NGINX وإصلاحها عن طريق التحقق من خطأ في بناء الجملة

تعتبر الأخطاء النحوية مشكلة شائعة يمكن أن تظهر عند كتابة البرامج النصية أو الرموز أو تكوين ملفات Nginx.

سواء استخدمت بنية بناء جملة غير صحيحة أو حذفت أحرفًا معينة ، فإن الصيغة غير الصحيحة ستمنع الكود أو التكوين من العمل بشكل صحيح.

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

للتحقق من وجود أي خطأ في بناء الجملة في ملف تكوين Nginx ، استخدم الأمر التالي.

sudo nginx -t

إذا تبين أن بناء الجملة صحيح ، فسيكون الإخراج ،

nginx: configuration file /etc/nginx/nginx.conf test is successful

ومع ذلك ، إذا كانت هناك مشكلة في بناء الجملة ، فسيتم عرض الإخراج على شكل ،

nginx: [emerg] unexpected end of file, expecting ";" or "}" in
/etc/nginx/nginx.conf:42
nginx: configuration file /etc/nginx/nginx.conf test failed

من خلال إجراء هذا الفحص ، يمكنك تحديد وتصحيح أي أخطاء في بناء الجملة ، مما يضمن دقة واكتمال تكوين Nginx. يُعد تشغيل هذا الأمر ممارسة جيدة كلما أجريت تغييرات على ملف التكوين أو قبل إعادة تشغيل Nginx لتجنب أي مشاكل ناتجة عن أخطاء في بناء الجملة.


ملاحظة: نوصي بشدة بتشغيل أمر بناء الجملة هذا للتحقق من وجود أي أخطاء في ملف تكوين Nginx والتأكد من عدم فقد أي شيء.


كيف تمنع أخطاء Nginx المستقبلية؟

يمكنك أيضًا اتخاذ إجراءات وقائية لتجنب أخطاء nginx في المستقبل. كل ما عليك فعله هو اتباع النصائح المذكورة أدناه:

1. تحديثات البرامج العادية: حافظ على تحديث خادم Nginx عن طريق تثبيت آخر تحديثات البرامج. غالبًا ما تتضمن التحديثات إصلاحات الأخطاء وتصحيحات الأمان وتحسينات الأداء التي يمكن أن تمنع المشكلات المعروفة أو تحلها.

2. المراقبة والتنبيه: قم بتطبيق نظام مراقبة لمراقبة صحة خادم Nginx وأدائه. قم بإعداد التنبيهات لإعلامك بأي أنشطة غير عادية أو أخطاء أو مشاكل محتملة ، مما يسمح لك باتخاذ إجراءات استباقية قبل أن تؤثر على موقع الويب الخاص بك.

3. تحسين الأداء: قم بتحسين تكوين Nginx لتحسين الأداء وتقليل احتمالية الأخطاء. اضبط الإعدادات المتعلقة بالتخزين المؤقت وأحجام المخزن المؤقت وحدود الاتصال لضمان المعالجة الفعالة للطلبات وتقليل مخاطر الأخطاء.


ملخص

باختصار ، يمكن أن تحدث أخطاء Nginx أثناء استخدام خادم الويب Nginx ، مما يتسبب في تعطيل موقع الويب أو تطبيق الويب الخاص بك. تأتي هذه الأخطاء بأشكال مختلفة ، بما في ذلك 502 Bad Gateway Error و 404 Not Found Error و 503 Service Unavailable Error و 504 Gateway Timeout Error وأخطاء إعادة التوجيه (301 و 302).

لاستكشاف أخطاء Nginx وإصلاحها بشكل فعال ، من المهم فهم أسبابها واتخاذ الإجراء المناسب. تتضمن المشغلات الشائعة لأخطاء Nginx أخطاء ملف التكوين أو مشكلات من جانب الخادم أو مشكلات الشبكة أو طلبات العميل. تتضمن الحلول العملية تشخيص السبب الجذري عن طريق فحص سجلات الأخطاء ، أو البحث عن أخطاء في بناء الجملة ، أو مراقبة حالة Nginx النشطة.

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

باتباع طرق استكشاف الأخطاء وإصلاحها وتنفيذ الحلول المناسبة ، يمكنك تشخيص أخطاء Nginx الشائعة وإصلاحها بشكل فعال ، مما يضمن تجربة سلسة لزوار موقعك على الويب.

أسئلة مكررة

كيف يمكنني إصلاح خطأ NGINX؟

أول شيء عليك القيام به هو تشغيل الأوامر التالية للحصول على سجل الأخطاء ، وحالة NGinx ، والتحقق من خطأ بناء الجملة.
1. احصل على سجل الأخطاء وتفاصيل المشكلة باستخدام هذا الأمر: sudo cat /var/log/nginx/error.log
2. لفحص حالة Nginx النشطة: sudo systemctl status nginx
3. لفحص أخطاء بناء الجملة في ملف التكوين: sudo nginx -t

ما هو خطأ NGINX؟

يشير خطأ Nginx إلى زوبعة أو خلل يحدث أثناء استخدام خادم الويب Nginx. Nginx هو خادم الويب الأكثر استخدامًا ، والذي تعتمد عليه معظم مواقع الويب. ومع ذلك ، مثل أي برنامج ، يمكن أن يواجه أخطاء قد تعطل الأداء السلس لموقع الويب الخاص بك.

ما الذي يسبب خطأ NGINX؟

الأسباب التي تسبب خطأ NGINX هي ،
1. خطأ في بناء الجملة
2. مشكلات جانب الخادم
3. قضايا الشبكة
4. طلبات العميل
5. مشاكل خادم الجهوزية