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.