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.


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';
  • Can you please tell me how to add a response header? – nishant Jun 10 '14 at 18:45
  • @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. – Brad Jun 10 '14 at 18:46
  • The web application is based on django. – nishant Jun 10 '14 at 18:48
  • @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. – Brad Jun 10 '14 at 18:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.