ذكري المظهر

تكوين خطأ nginx وسجل الدخول

Create Gunicorn as a Service - Deploy Flask application on EC2 p.6

Create Gunicorn as a Service - Deploy Flask application on EC2 p.6

جدول المحتويات:

Anonim

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

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

يكتب Nginx سجلات أحداثه في نوعين من السجلات: سجلات الوصول وسجلات الأخطاء. سجلات الوصول تكتب معلومات حول طلبات العميل ، وتكتب سجلات الأخطاء معلومات حول مشكلات الخادم والتطبيق.

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

تكوين سجل الوصول

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

يسمح لك التوجيه log_format بتعريف تنسيق الرسائل المسجلة. يمكّن التوجيه access_log ويقوم بتعيين موقع ملف السجل والتنسيق المستخدم.

بناء الجملة الأساسي من التوجيه access_log هو كما يلي:

access_log log_file log_format;

حيث log_file هو المسار الكامل لملف السجل ، و log_format هو التنسيق المستخدم بواسطة ملف السجل.

يمكن تمكين سجل الوصول إما في http أو server أو كتلة توجيهات location .

بشكل افتراضي ، يتم تمكين سجل الوصول على مستوى العالم في التوجيه http داخل ملف التكوين Nginx الرئيسي.

/etc/nginx/nginx.conf

http {… access_log /var/log/nginx/access.log;… }

لتحسين الصيانة ، يوصى بتعيين ملف سجل وصول منفصل لكل كتلة خادم. access_log التوجيه access_log المحدد في توجيه server المجموعة الواحدة في التوجيه http (المستوى الأعلى).

/etc/nginx/conf.d/domain.com.conf

http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }

إذا لم يتم تحديد تنسيق سجل ، يستخدم Nginx التنسيق المدمج المحدد مسبقًا والذي يشبه هذا:

log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';

لتغيير تنسيق التسجيل إما تجاوز الإعداد الافتراضي أو حدد إعدادًا جديدًا. على سبيل المثال ، لتعريف تنسيق تسجيل جديد باسم الرئيسي والذي سيمدد التنسيق المدمج مع القيمة التي تظهر رأس X-Forwarded-For أضف التعريف التالي في التوجيه http أو server :

log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

لاستخدام التنسيق الجديد ، حدد اسمه بعد ملف السجل كما هو موضح أدناه:

access_log /var/log/nginx/access.log custom;

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

access_log off;

تكوين سجل الأخطاء

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

يمكّن توجيه error_log ويقوم بتعيين الموقع ومستوى شدة سجل الأخطاء. يستغرق النموذج التالي ويمكن تعيينه ضمن http أو server أو block site:

error_log log_file log_level

تحدد المعلمة log_level مستوى التسجيل. فيما يلي المستويات المدرجة حسب شدتها (من الأقل إلى الأعلى):

  • debug - تصحيح الرسائل. info - رسائل إعلامية. notice - الإشعارات. warn - تحذيرات. error - أخطاء أثناء معالجة الطلب. crit - القضايا الحرجة. يتطلب اتخاذ إجراء سريع. alert - تنبيهات. يجب اتخاذ الإجراءات على الفور. الطوارئ - حالة الطوارئ. النظام في حالة غير صالحة للاستعمال.

يتضمن كل مستوى سجل المستويات العليا. على سبيل المثال ، إذا قمت بتعيين مستوى السجل warn ، فسيقوم Nginx أيضًا بتسجيل رسائل error ، crit ، alert ، emerg .

عندما لا يتم تحديد المعلمة log_level يتم log_level error .

بشكل افتراضي ، يتم تعريف التوجيه error_log في التوجيه http داخل ملف nginx.conf الرئيسي:

/etc/nginx/nginx.conf

http {… error_log /var/log/nginx/error.log;… }

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

على سبيل المثال ، لتعيين سجل الأخطاء domain.com ' warn قد تستخدم:

http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }

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

موقع ملفات السجل

بشكل افتراضي في معظم توزيعات Linux ، مثل Ubuntu و CentOS و Debian ، توجد سجلات الوصول والخطأ في دليل /var/log/nginx .

قراءة وفهم ملفات سجل Nginx

يمكنك فتح ملفات السجل وتحليلها باستخدام أوامر قياسية مثل cat و less و grep و cut و awk وما إلى ذلك.

فيما يلي مثال لسجل من ملف سجل الوصول يستخدم تنسيق سجل Nginx المدمج الافتراضي:

192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

لنفصل ما يعنيه كل حقل في السجل:

  • $remote_addr - 192.168.33.1 - عنوان IP للعميل الذي يقوم بطلب الطلب. $remote_user - - - HTTP Authenticated User. عندما لا يتم تعيين اسم المستخدم ، يظهر هذا الحقل - . - - وقت الخادم المحلي. "$request" - "GET / - نوع الطلب والمسار والبروتوكول. $status - 200 - رمز استجابة الخادم. $body_bytes_sent - 396 - حجم استجابة الخادم بالبايت. "$http_referer" - "-" - عنوان URL للإحالة. "$http_user_agent" - Mozilla/5.0… - وكيل المستخدم للعميل (متصفح الويب).

استخدم الأمر tail لمشاهدة ملف السجل في الوقت الفعلي:

tail -f access.log

استنتاج

توفر لك ملفات السجل معلومات مفيدة حول مشكلات الخادم وكيفية تفاعل الزوار مع موقع الويب الخاص بك.

يسمح لك Nginx بتكوين سجلات الوصول والخطأ وفقًا لاحتياجاتك.

إنجن إكس