एंड्रॉयड

Nginx त्रुटि और पहुँच लॉग कॉन्फ़िगर करना

AWS Tutorial For Beginners | AWS Full Course - Learn AWS In 10 Hours | AWS Training | Edureka

AWS Tutorial For Beginners | AWS Full Course - Learn AWS In 10 Hours | AWS Training | Edureka

विषयसूची:

Anonim

Nginx एक खुला-स्रोत, उच्च-प्रदर्शन HTTP और रिवर्स प्रॉक्सी सर्वर है जो इंटरनेट पर कुछ सबसे बड़ी साइटों के भार को संभालने के लिए जिम्मेदार है। एनजीआईएनएक्स वेब सर्वर का प्रबंधन करते समय, आपके द्वारा किए जाने वाले सबसे लगातार कार्यों में से एक लॉग फाइलों की जांच करना है।

जब वे विस्तृत डीबगिंग जानकारी प्रदान करते हैं तो सर्वर या अनुप्रयोग समस्याओं का निवारण करते समय लॉग को कॉन्फ़िगर करना और पढ़ना बहुत उपयोगी होता है।

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;… }

बेहतर रखरखाव के लिए, प्रत्येक सर्वर ब्लॉक के लिए एक अलग एक्सेस लॉग फाइल सेट करने की सिफारिश की जाती है। server डायरेक्टिव में access_log सेट सेट 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 या location ब्लॉक के भीतर सेट किया जा सकता है:

error_log log_file log_level

log_level पैरामीटर लॉगिंग का स्तर सेट करता है। नीचे उनकी गंभीरता (निम्न से उच्च तक) द्वारा सूचीबद्ध स्तर हैं:

  • debug - संदेशों को debug info - सूचनात्मक संदेश। notice - नोटिस। warn - चेतावनी। error - अनुरोध को संसाधित करते समय त्रुटियां। समालोचना - गंभीर मुद्दे। त्वरित कार्रवाई की आवश्यकता है। alert - अलर्ट। तुरंत कार्रवाई की जानी चाहिए। आपात स्थिति - आपातकालीन स्थिति। प्रणाली अनुपयोगी अवस्था में है।

प्रत्येक लॉग स्तर में उच्च स्तर शामिल हैं। उदाहरण के लिए, यदि आप warn लिए लॉग स्तर सेट करते हैं, तो Nginx error , crit , alert , और संदेश को लॉग भी करेगा।

जब log_level पैरामीटर निर्दिष्ट नहीं होता है, तो यह error लिए चूक करता error

डिफ़ॉल्ट रूप से, error_log निर्देश मुख्य nginx.conf फ़ाइल के अंदर http निर्देश में परिभाषित किया गया है:

/etc/nginx/nginx.conf

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

एक्सेस लॉग के साथ ही, प्रत्येक सर्वर ब्लॉक के लिए एक अलग त्रुटि लॉग फ़ाइल सेट करने की सिफारिश की जाती है, जो उच्च स्तरों से विरासत में मिली सेटिंग को ओवरराइड करती है।

उदाहरण के लिए, आप उपयोग करने वाले warn लिए domain.com की त्रुटि लॉग सेट करने के लिए:

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

जब भी आप कॉन्फ़िगरेशन फ़ाइल को संशोधित करते हैं, तो आपको परिवर्तनों को प्रभावी करने के लिए Nginx सेवा को पुनरारंभ करना होगा।

लॉग फ़ाइलों का स्थान

अधिकांश लिनक्स वितरणों पर डिफ़ॉल्ट रूप से, जैसे कि Ubuntu, CentOS, और डेबियन, एक्सेस और एरर लॉग /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 प्रमाणीकृत उपयोगकर्ता। जब उपयोगकर्ता नाम सेट नहीं किया जाता है, तो यह फ़ील्ड दिखाता है - । - - स्थानीय सर्वर समय। "$request" - "GET / - अनुरोध प्रकार, पथ और प्रोटोकॉल। $status - 200 - सर्वर प्रतिक्रिया कोड। $body_bytes_sent - 396 - बाइट्स में सर्वर प्रतिक्रिया का आकार। "$http_referer" - "-" - रेफरल का URL। "$http_user_agent" - Mozilla/5.0… - क्लाइंट का उपयोगकर्ता एजेंट (वेब ​​ब्राउज़र)।

वास्तविक समय में लॉग फ़ाइल देखने के लिए tail कमांड का उपयोग करें:

tail -f access.log

निष्कर्ष

लॉग फ़ाइलें आपको सर्वर समस्याओं के बारे में उपयोगी जानकारी प्रदान करती हैं और आगंतुक आपकी वेबसाइट के साथ कैसे संपर्क करते हैं।

Nginx आपको अपनी आवश्यकताओं के अनुसार पहुंच और त्रुटि लॉग को कॉन्फ़िगर करने की अनुमति देता है।

nginx