1. 미들웨어이야기/04. Nginx

Nginx 로그 설정

알 수 없는 사용자 2014. 11. 26. 11:24

1. Nginx의 로그 포멧은 다음과 같이 설정할 수 있습니다.

 

http {

    log_format combiled '$remote_addr - $remote_user [$time_local] ' 

        '"$request" $status $body_byte_sent ' '"$http_referer" "$http_user_agent"';

    access_log /var/log/nginx/access.log combined;     //combine 형태의 로그

    error_log /var/log/nginx/error.log crit;              //crit 형태의 로그

...




Nginx 로그 레벨 설정

에러 레벨 

의미 

 Alert

 긴급 상황

 Crit

 위험한 상황

 Error

 오류 상황

 Warn

 경고 상황

 Notice

 정상이지만 중요한 상황

 Info

 정보 메시지

 Debug

 디버그레벨 메시지



2. Apache 포맷으로 로그 기록하기

대부분의 웹 로그 분석기는 Apache 로그 포멧을 기준으로 작동을 합니다. 필요에 따라서 NginX의 로그를 다음과 같은 방법을 통하여 Apache 로그 포멧으로 기록을 할 수 있습니다.



log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded+for"';

access_log /var/log/nginx/access.log main; 



Apache와 Nginx 로그 설정 비교.

 Apache 설정

 Nginx 설정

 의미

 %h

 $remote_addr

 이 사이트에 접근하고 있는 클라이언트들의 IP 주소

 %l

 $remote_user

 사용자가 HTTP 인증으로 로그인했을 때 사용자명

 %t

 $time_local

 요청이 발생한 때 서버의 지역 타임스탬프

 %r

 $request

 서버에 제출된 요청

 %s

 $status

 HTTP 응답 코드 (200, 404, 500 등)

 %b

 $body_bytes_sent

 서버가 클라이언트로 전송한 응답의 크기

 %U

 $http_referer

 클라이언트를 이 서버로 오게 만든 이전 페이지의 URL

 "%{User-agent}i"

 $http_user_agent

 HTTP 요청에 사용된 브라우저 타입


참고 : http://httpd.apache.org/docs/2.2/ko/mod/mod_log_config.html



by hyeons(9월)