Хранение имени пользователя в логах nginx


10

Есть ли способ, которым имя пользователя или идентификатор пользователя могут быть сохранены в логах nginx. Я попытался вставить $ remote_user в директиву log_format, но, похоже, это не работает.

Ответы:


11

Да, это возможно Тем не менее, поскольку вы не используете базовую аутентификацию HTTP, вам понадобится ваше приложение, чтобы сообщить Nginx, каково текущее имя пользователя. Добавьте заголовок ответа в соответствии с:

X-Username: nishant

Затем в вашей log_formatдирективе используйте переменную $sent_http_x_username. Это поведение описано здесь: http://wiki.nginx.org/HttpCoreModule#.24sent_http_HEADER

Я также рекомендую удалить этот дополнительный заголовок из ответа перед его отправкой клиенту. Вы можете сделать это с NginxHttpHeadersMoreModule .

more_clear_headers 'X-Username';

Подскажите, пожалуйста, как добавить заголовок ответа?
nishant

@nishant Это полностью зависит от вашего кода. Вам нужно будет что-то написать или изменить то, что вы хотите, чтобы вывести имя пользователя в заголовке ответа.
Брэд

Веб-приложение основано на Django.
nishant

@nishant Я ничего не писал с Django, поэтому не могу дать вам конкретного совета, но похоже, что он поддерживает промежуточное ПО. Я бы написал модуль промежуточного программного обеспечения, который позаботится о добавлении дополнительного заголовка.
Брэд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.