Gibt es eine Möglichkeit, eine eindeutige ID pro Anforderung für Nginx zu protokollieren?


11

Hierfür scheint es einige Module von Drittanbietern zu geben

Wenn möglich, möchte ich nginx jedoch nicht neu erstellen, was meiner Meinung nach eine Voraussetzung für die Verwendung dieser beiden Module ist. Mein erster Versuch war, $msecmit zu verwenden, $pidaber das hat nicht geklappt (ich hatte einen Prozess, der zwei Anfragen gleichzeitig Millisekunde bediente). Ich habe darüber gelesen $connectionund es scheint, als würde das in Verbindung mit funktionieren $msec. Funktioniert dies oder gibt es einen besseren Weg, ohne Module von Drittanbietern zu verwenden?

Antworten:



6

Sie können nginx-extraseingebettetes Perl oder Lua verwenden und verwenden.

$ sudo apt-get install libossp-uuid-perl

In Ihrer Nginx-Konfiguration:

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

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

Und dann für eine gegebene location:

proxy_set_header Request-Id $request_uuid

Wir verwenden dies in der Produktion und sind sehr zufrieden mit der besseren Nachverfolgung unserer Backend-Services.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.