Armazenando nome de usuário em logs nginx


10

Existe uma maneira pela qual o nome do usuário ou o ID do usuário possam ser armazenados nos logs do nginx. Tentei inserir $ remote_user na diretiva log_format, mas parece não funcionar.

Respostas:


10

Sim, isso é possível. No entanto, como você não está usando a autenticação básica HTTP, precisará do seu aplicativo informar ao Nginx qual é o nome de usuário atual. Adicione um cabeçalho de resposta ao longo das linhas de:

X-Username: nishant

Então, em sua log_formatdirectiva, usar a variável $sent_http_x_username. Esse comportamento está documentado aqui: http://wiki.nginx.org/HttpCoreModule#.24sent_http_HEADER

Também recomendo remover esse cabeçalho extra da resposta antes de enviá-lo ao cliente. Você pode fazer isso com o NginxHttpHeadersMoreModule .

more_clear_headers 'X-Username';

Você pode me dizer como adicionar um cabeçalho de resposta?
— Nishant

@nishant Isso depende inteiramente do seu código. Você precisará escrever algo ou modificar o que precisa para gerar o nome de usuário no cabeçalho da resposta.
— Brad

O aplicativo da web é baseado no django.
— Nishant

@nishant Eu não escrevi nada com o Django, então não posso dar conselhos específicos, mas parece que ele suporta middleware. Eu escreveria um módulo de middleware que cuida da adição do cabeçalho extra.
— Brad
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.