在Nginx日志中存储用户名


10

有没有一种方法可以将用户名或用户名存储在nginx日志中。我尝试在log_format指令中插入$ remote_user,但似乎不起作用。

Answers:


11

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

X-Username: nishant

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

我还建议从响应中删除此多余的标头,然后再将其发送到客户端。您可以使用NginxHttpHeadersMoreModule做到这一点。

more_clear_headers 'X-Username';

您能告诉我如何添加响应标题吗?
nishant

@nishant完全取决于您的代码。您将不得不编写一些内容或修改您必须在响应头中输出用户名的内容。
Brad

该Web应用程序基于django。
nishant

@nishant我没有用Django写任何东西,所以我不能给您具体的建议,但看起来它支持中间件。我将编写一个中间件模块,该模块负责添加额外的标头。
布拉德(Brad)2014年
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.