11

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 1

13

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .