Nginx लॉग में उपयोगकर्ता नाम संग्रहीत करना


10

क्या कोई ऐसा तरीका है जिसमें उपयोगकर्ता-नाम या उपयोगकर्ता-आईडी को नगीनक्स लॉग में संग्रहीत किया जा सकता है। मैंने log_format निर्देश में $ रिमोट_सियर डालने की कोशिश की, लेकिन यह काम नहीं करता है।

जवाबों:


11

हां, यह संभव है। हालाँकि, चूंकि आप HTTP बेसिक नॉर्म्स का उपयोग नहीं कर रहे हैं, इसलिए आपको Nginx को यह बताने के लिए आपके एप्लिकेशन की आवश्यकता होगी कि वर्तमान उपयोगकर्ता नाम क्या है। की तर्ज पर एक प्रतिक्रिया शीर्ष लेख जोड़ें:

X-Username: nishant

फिर अपने log_formatनिर्देश में, चर का उपयोग करें $sent_http_x_username। यह व्यवहार यहाँ प्रलेखित है: http://wiki.nginx.org/HttpCoreModule#.24sent_http_HEADER

मैं क्लाइंट को भेजने से पहले इस अतिरिक्त हेडर को प्रतिक्रिया से हटाने की भी सलाह देता हूं। आप इसे NginxHttpHeadersMoreModule के साथ कर सकते हैं ।

more_clear_headers 'X-Username';

क्या आप कृपया मुझे बता सकते हैं कि प्रतिक्रिया शीर्षक कैसे जोड़ें?
निशांत

@ निशांत जो पूरी तरह से आपके कोड पर निर्भर करता है। आपको प्रतिक्रिया शीर्षलेख में उपयोगकर्ता नाम को आउटपुट करने के लिए कुछ लिखना होगा या संशोधित करना होगा।
ब्रैड

वेब एप्लिकेशन django पर आधारित है।
निशांत १०'१४ को

@ निशांत ने मुझे Django के साथ कुछ भी नहीं लिखा है इसलिए मैं आपको विशिष्ट सलाह नहीं दे सकता, लेकिन ऐसा लगता है कि यह मिडिलवेयर का समर्थन करता है। मैं एक मिडलवेयर मॉड्यूल लिखूंगा जो अतिरिक्त हेडर को जोड़ने का ध्यान रखता है।
ब्रैड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.