有没有一种方法可以为nginx记录每个请求的唯一ID?


12

似乎有几个第三方模块

但是,如果可能的话,我不想重建nginx,我相信这是同时使用这两个模块的要求。我最初的尝试是使用$msecwith,$pid但是没有成功(我有一个进程在同一毫秒内处理两个请求)。我已读过有关内容$connection,似乎可以与结合使用$msec。如果不使用第三方模块,这种方法还是有更好的方法?

Answers:



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

我们正在生产中使用它,并且对我们在后端服务中的更好跟踪感到非常满意。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.