NGINX 의 ACCESS LOG 설정

5703 단어 nginx
기본적으로 access log 는... ginx \ logs 디 렉 터 리 에 놓 여 있 습 니 다. 파일 이름 은 access. log 이 고 기본 형식 은 사전 설정 형식 입 니 다: combined
log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';

... 에 있다
http { 
...
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
access_log  logs/access.log  main;
} 

이 내용 은 지하 에서 형식 과 로그 파일 경로, 파일 이름 을 수정 할 수 있 으 며, 항목 특성 에 따라 파일 이름 을 수정 하 는 것 을 권장 합 니 다. 특히 로그 파일 에 민감 한 정 보 를 인쇄 하여 사용자 행동 분석 을 해 야 할 때 외부 사용자 가 로그 파일 을 쉽게 잡 아 정보 가 유출 되 지 않도록 해 야 합 니 다.
log_format 에서 설정 을 실행 하 는 일반적인 변 수 는 다음 과 같 습 니 다.
$remote_addr, $http_x_forwarded_for      IP  
$remote_user          
$request      URL HTTP  
$status       
$body_bytes_sent           ,         ;     Apache  mod_log_config  “%B”    。
$bytes_sent$connection$connection_requests$msec       。    ,     。
$pipe        HTTP   (pipelined)  ,pipe  “p”,   “.”。
$http_referer               
$http_user_agent             
$request_length      (     ,        )。
$request_time       ,    ,    ;               ,                        。
$time_iso8601 ISO8601          。
$time_local

보통 웹 서버 는 역방향 프 록 시 뒤에 놓 여 있 습 니 다. 그러면 고객 의 IP 주 소 를 얻 을 수 없습니다. $reote 를 통 해addr 가 받 은 IP 주 소 는 프 록 시 서버 를 반대 하 는 아이 폰 주소 입 니 다.역방향 프 록 시 서버 는 요청 한 http 헤더 정 보 를 전송 할 때 $http 를 증가 시 킬 수 있 습 니 다.x_forwarded_for 정 보 는 기 존 클 라 이언 트 의 IP 주소 와 기 존 클 라 이언 트 가 요청 한 서버 주 소 를 기록 합 니 다.
이러한 변 수 를 제외 하고 실제 http 에서 요청 한 필드 정 보 를 얻 을 수 있 습 니 다. 예 를 들 어 $httpuser_agent, $http_cookie。 지원 할 수 있 는 모든 변 수 를 볼 수 있 습 니 다:http://nginx.org/en/docs/http/ngx_http_core_module.html#variables
또한 ngx 를 열 수 있 습 니 다.http_userid_module, 열 면 $uidgot 또는 $uid 에서 유일 하 게 식 별 된 사용자 장 치 를 가 져 옵 니 다.Syntax: userid on | v1 | log | off; Default: userid off; Context: http, server, location 구체 적 인 튜 토리 얼 에 접근 할 수 있 습 니 다.http://nginx.org/en/docs/http/ngx_http_userid_module.html#var_uid_got
이러한 정 보 는 시스템 의 PV 와 UV 계산 에 충분 하 며 대부분의 사용자 의 행동 을 설정 하면 이러한 변 수 를 통 해 얻 을 수 있 습 니 다.
확장 읽 기 를 통 해 쿠키 의 변수 값 을 읽 는 방법 을 알 수 있 습 니 다. 1. 전체 쿠키 내용 을 하나의 변수 로 추출 한 다음 필요 할 때 참조 할 수 있 습 니 다. 예 를 들 어 로그 에 기록 할 수 있 습 니 다.
if ( $http_cookie ~* "(.*)$") {
set $all_cookie $1;
}
  • 지정 한 쿠키 의 값 을 추출 한 다음 에 필요 에 따라 사용 합 니 다. 예 를 들 어 X - Real - IP 에 할당 하 는 것 입 니 다.
  •    set $uid "-";
            if ( $http_cookie ~* "uid=(\S+)(;.*|$)"){
                set $uid $1; 
            }
            set $member_id '-';
            if ( $http_cookie ~* "select_area_name=(\S+)(;.*|$)" ) {
                set $member_id $1;
            }
  • proxy / fcgi 등 장면 에서 Cookies 에 내용 을 추가 합 니 다. 예 를 들 어 백 엔 드 에 당신 이 그 front 라 고 알려 줍 니 다.
  • proxy_set_header Cookie "$http_cookie; node_id=018"

    여기에 node 라 는 이름 이 추가 되 었 습 니 다.id 의 쿠키 가 들 어 갑 니 다. 물론 이 예 에서 전단 의 ID 를 백 엔 드 에 전달 할 수 있 습 니 다.
    proxy_set_header X-CDN-ID "018";

    백 엔 드 통과 $SERVER ['HTTP X CDN ID'] 에서 할당 을 받 을 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기