এনগিনেক্সের জন্য প্রতি অনুরোধের অনন্য আইডি লগ করার কোনও উপায় আছে কি?


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:

হেক্সাডেসিমালে (১.১১.০) 16 টি এলোমেলো বাইট থেকে উদ্ভূত অনন্য অনুরোধ শনাক্তকারী


পুরানো সংস্করণের জন্য (<= 1.2.7), আপনি "$ পিড- $ ডেট_লোকাল" এর মতো কিছু ব্যবহার করতে পারেন যা বেশিরভাগ ব্যবহারের জন্য যথেষ্ট অনন্য হওয়া উচিত।
বাক্টিসমে

6

আপনি nginx-extrasএম্বেড থাকা পার্ল বা লুয়া ব্যবহার করতে এবং ব্যবহার করতে পারেন ।

$ sudo apt-get install libossp-uuid-perl

আপনার এনগিনেক্স কনফিগারেশনে:

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

আমরা এটি উত্পাদনে ব্যবহার করছি এবং আমাদের ব্যাকএন্ড পরিষেবাদি জুড়ে থাকা আরও ভাল ট্রেসিং নিয়ে আমরা খুব খুশি happy


1

আপনি যদি এনজিনেক্স-এক্সট্রা বা পার্নেল এনজিনেক্সে ব্যবহার করতে পারেন ।

তারপরে আপনি পার্ল_সেট ব্যবহার করে অনুরোধ ভেরিয়েবল সেট করতে পারেন

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-used-perl.html

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.