Чи є спосіб увімкнути унікальний ідентифікатор для nginx за запитом?


12

Здається, для цього є кілька сторонніх модулів

Однак, якщо можливо, я не хочу перебудовувати nginx, що, на мою думку, є необхідністю використання обох цих модулів. Моя перша спроба була використовувати $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.11.0)


Для старої версії (<= 1.2.7) ви можете використовувати щось на зразок "$ pid- $ date_local", яке повинно бути унікальним для більшості використання.
Бактизм

6

Ви можете використовувати nginx-extrasта використовувати вбудовані Perl або Lua.

$ 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

Ми використовуємо це у виробництві і дуже задоволені тим, що краще відстежуємо наші сервіси.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.