Is there a way in which user-name or user-id can be stored in nginx logs. I tried inserting $remote_user in the log_format directive but it doesn't seem to work.
1 Answer
Yes, this is possible. However, since you aren't using HTTP basic auth, you will need your application to tell Nginx what the current username is. Add a response header along the lines of:
X-Username: nishant
Then in your log_format
directive, use the variable $sent_http_x_username
. This behavior is documented here: http://wiki.nginx.org/HttpCoreModule#.24sent_http_HEADER
I also recommend removing this extra header from the response before sending it to the client. You can do this with the NginxHttpHeadersMoreModule.
more_clear_headers 'X-Username';
-
-
@nishant That depends entirely on your code. You will have to write something or modify what you have to output the username in the response header.– BradJun 10, 2014 at 18:46
-
-
@nishant I haven't written anything with Django so I can't give you specific advice, but it looks like it supports middleware. I would write a middleware module that takes care of adding the extra header.– BradJun 10, 2014 at 18:51