nginx 로그에 사용자 이름 저장


10

nginx 로그에 사용자 이름 또는 사용자 ID를 저장할 수있는 방법이 있습니까? log_format 지시문에 $ remote_user를 삽입하려고 시도했지만 작동하지 않는 것 같습니다.

답변:


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 그것은 전적으로 코드에 달려 있습니다. 응답 헤더에 사용자 이름을 출력하기 위해 무언가를 쓰거나 수정해야합니다.
— Brad

웹 애플리케이션은 django를 기반으로합니다.
— nishant

@nishant Django로 아무것도 쓰지 않았으므로 구체적인 조언을 드릴 수는 없지만 미들웨어를 지원하는 것처럼 보입니다. 여분의 헤더를 추가하는 미들웨어 모듈을 작성하겠습니다.
— Brad
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.