क्या निगंक्स के लिए प्रति अनुरोध अद्वितीय आईडी लॉग करने का एक तरीका है?


12

इसके लिए कुछ तीसरे पक्ष के मॉड्यूल प्रतीत होते हैं

हालाँकि यदि संभव हो तो मैं नग्नेक्स का पुनर्निर्माण नहीं करना चाहता, जो मुझे विश्वास है, इन दोनों मॉड्यूल का उपयोग करने की आवश्यकता है। मेरी शुरुआती कोशिश थी कि इसके $msecसाथ $pidकाम न किया जाए (मेरे पास एक ही मिलीसेकंड पर दो अनुरोधों पर काम करने की प्रक्रिया थी)। मैंने इसके बारे में पढ़ा है $connectionऔर ऐसा लगता है कि यह संयोजन के साथ काम करेगा $msec। क्या यह काम या तीसरे पक्ष के मॉड्यूल का उपयोग किए बिना एक बेहतर तरीका है?

जवाबों:


10

Nginx संस्करण v1.11 (मई 2016) के लिए अपडेट:

http://nginx.org/en/docs/http/ngx_http_core_module.html#var_request_id

आप उपयोग कर सकते हैं $request_id:

हेक्साडेसिमल (1.11.0) में 16 यादृच्छिक बाइट्स से उत्पन्न अद्वितीय अनुरोध पहचानकर्ता


पुराने संस्करण (<= 1.2.7) के लिए, आप "$ pid- $ date_local" जैसी किसी चीज़ का उपयोग कर सकते हैं, जो कि अधिकांश उपयोग के लिए पर्याप्त होनी चाहिए।
बैक्टिज्म '

6

आप nginx-extrasएम्बेडेड पर्ल या लुआ का उपयोग और उपयोग कर सकते हैं ।

$ sudo apt-get install libossp-uuid-perl

आपके nginx कॉन्फ़िगरेशन में:

perl_require "Data/UUID.pm";
perl_set $request_uuid 'sub {

    my $ug = new Data::UUID;
   return $ug->create_str();
}';

और फिर दिए गए के लिए location:

proxy_set_header Request-Id $request_uuid

हम उत्पादन में इसका उपयोग कर रहे हैं और बेहतर लाभ के साथ बहुत खुश हैं कि हमारे पास बैकएंड सेवाएं हैं।


1

यदि आप nginx-extras या perl का उपयोग nginx में कर सकते हैं ।

तब आप perl_set का उपयोग करके अनुरोध चर सेट कर सकते हैं

perl_set $uuid 'sub {
  return join "", map{(a..z,A..Z,0..9)[rand 62]} 0..7;
}';

यदि आपको अधिक जानकारी चाहिए: http://yozik04.blogspot.com/2014/12/nginx-request-id-using-perl.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.