将用户名存储在 nginx 日志中

nis*_*ant 11 nginx logging django

有没有办法将用户名或用户 ID 存储在 nginx 日志中。我尝试在 log_format 指令中插入 $remote_user 但它似乎不起作用。

Bra*_*rad 13

是的,这是可能的。但是,由于您没有使用 HTTP 基本身份验证,您将需要您的应用程序告诉 Nginx 当前用户名是什么。沿着以下几行添加响应标头:

X-Username: nishant
Run Code Online (Sandbox Code Playgroud)

然后在您的log_format指令中,使用变量$sent_http_x_username. 此行为记录在此处:http : //wiki.nginx.org/HttpCoreModule#.24sent_http_HEADER

我还建议在将响应发送到客户端之前从响应中删除这个额外的标头。你可以用NginxHttpHeadersMoreModule做到这一点。

more_clear_headers 'X-Username';
Run Code Online (Sandbox Code Playgroud)