Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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.

share|improve this question

1 Answer 1

up vote 3 down vote accepted

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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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