我需要在每个 Nginx 日志行上都有一个唯一标识符。有没有简单的方法可以添加它?
谢谢!
答案1
答案2
升级到 nginx >= 1.11,支持$request_id
多变的。
或者对于旧版本,您可以使用 Perl 模块生成 UUID,在(或)http
部分中:nginx.conf
conf.d/uuid.conf
perl_require "Data/UUID.pm";
perl_set $request_id 'sub {
my $ug = new Data::UUID;
return $ug->create_str();
}';
在 Debian 上你需要nginx-extra
包(nginx 中的 Perl 脚本)和libossp-uuid-perl
:
sudo apt install nginx-extra libossp-uuid-perl
然后您可以附加$request_id
到日志或者设置 HTTP 标头:
proxy_set_header Request-Id $request_id
答案3
$connection
变量包含连接标识符。它不是全局唯一的,我猜它会在 Nginx 重启后从 0 开始。但它在重启之间应该是唯一的。