Przechowywanie nazwy użytkownika w logach nginx


10

Czy istnieje sposób, w jaki nazwa użytkownika lub identyfikator użytkownika mogą być przechowywane w logach nginx. Próbowałem wstawić $ remote_user do dyrektywy log_format, ale wydaje się, że to nie działa.

Odpowiedzi:


11

Tak, jest to możliwe. Ponieważ jednak nie korzystasz z podstawowego uwierzytelniania HTTP, Twoja aplikacja będzie musiała poinformować Nginx o bieżącej nazwie użytkownika. Dodaj nagłówek odpowiedzi wzdłuż:

X-Username: nishant

Następnie w swojej log_formatdyrektywie użyj zmiennej $sent_http_x_username. To zachowanie jest udokumentowane tutaj: http://wiki.nginx.org/HttpCoreModule#.24sent_http_HEADER

Polecam również usunięcie tego dodatkowego nagłówka z odpowiedzi przed wysłaniem go do klienta. Możesz to zrobić za pomocą NginxHttpHeadersMoreModule .

more_clear_headers 'X-Username';

Czy możesz mi powiedzieć, jak dodać nagłówek odpowiedzi?
nishant

@nishant To zależy całkowicie od twojego kodu. Będziesz musiał coś napisać lub zmodyfikować to, co musisz wypisać nazwę użytkownika w nagłówku odpowiedzi.
Brad

Aplikacja internetowa oparta jest na django.
nishant

@nishant Nie napisałem nic z Django, więc nie mogę dać ci konkretnej porady, ale wygląda na to, że obsługuje oprogramowanie pośrednie. Napiszę moduł oprogramowania pośredniego, który zajmie się dodaniem dodatkowego nagłówka.
Brad
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.