NGINX 의 ACCESS LOG 설정
5703 단어 nginx
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;
}
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_set_header Cookie "$http_cookie; node_id=018"
여기에 node 라 는 이름 이 추가 되 었 습 니 다.id 의 쿠키 가 들 어 갑 니 다. 물론 이 예 에서 전단 의 ID 를 백 엔 드 에 전달 할 수 있 습 니 다.
proxy_set_header X-CDN-ID "018";
백 엔 드 통과 $SERVER ['HTTP X CDN ID'] 에서 할당 을 받 을 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.