초 상세!Nginx 로그 설정 실천
Nginx 로 그 는 통계, 시스템 서비스 오류 에 유용 합 니 다.
Nginx 로 그 는 주로 두 가지 로 나 뉜 다. accesslog (방문 로그) 와 errorlog (오류 로그).로그 에 접근 하면 사용자 의 IP 주소, 브 라 우 저의 정보, 요청 한 처리 시간 등 정 보 를 얻 을 수 있 습 니 다.오류 로 그 는 접근 오류 정 보 를 기록 하여 잘못된 원인 을 찾 는 데 도움 을 줄 수 있 습 니 다.
이 글 은 Nginx 로 그 를 어떻게 설정 하 는 지 상세 하 게 설명 할 것 이다.
access 설정log
방문 로 그 는 주로 클 라 이언 트 의 요청 을 기록 합 니 다.클 라 이언 트 가 Nginx 서버 에 요청 한 모든 요청 이 여기에 기록 되 어 있 습 니 다.클 라 이언 트 IP, 브 라 우 저 정보, refer, 요청 처리 시간, 요청 URL 등 은 방문 로그 에서 얻 을 수 있 습 니 다.물론 어떤 정 보 를 구체 적 으로 기록 해 야 하 는 지 log 를 통 해format 명령 정의.
문법
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
#
access_log off;
#
또 하나의 특별한 값 off 가 있 습 니 다.이 값 을 지정 하면 현재 역할 영역 에 있 는 모든 요청 로그 가 닫 힙 니 다.
역할 영역
access 적용 가능log 명령 의 역할 영역 은 http, server, location, limit 가 있 습 니 다.except。즉, 이 몇 가지 역할 을 역외 에서 이 명령 을 사용 하면 Nginx 가 잘못 보고 한 다 는 것 이다.
이상 은 accesslog 명령 의 기본 문법 과 매개 변수의 의미.다음은 몇 가지 예 를 보고 이 해 를 깊이 있 게 합 시다.
기본 용법
access_log /var/logs/nginx-access.log
이 예 는 로그 의 기록 경 로 를 / var / logs / nginx - access. log 로 지정 합 니 다. 로그 형식 은 기본 combined 를 사용 합 니 다.
access_log /var/logs/nginx-access.log buffer=32k gzip flush=1m
이 예 는 로그 의 기록 경 로 를 / var / logs / nginx - access. log 로 지정 합 니 다. 로그 형식 은 기본 combined 를 사용 합 니 다. 지정 한 로그 의 캐 시 크기 는 32k 입 니 다. 로 그 를 쓰기 전에 gzip 를 사용 하여 압축 합 니 다. 기본 값 1 을 사용 하 는 것 보다 압축 합 니 다. 캐 시 데이터 의 유효 시간 은 1 분 입 니 다.
log 사용format 사용자 정의 로그 형식
Nginx 는 combined 로그 형식 을 미리 정 의 했 습 니 다. 지정 한 로그 형식 이 없 으 면 기본적으로 이 형식 을 사용 합 니 다.
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
Nginx 가 미리 정의 한 형식 을 사용 하지 않 으 려 면 log 를 통 해format 명령 으로 사용자 정의 합 니 다.
문법
log_format name [escape=default|json] string ...;
다음은 logformat 명령 에서 자주 사용 하 는 변수:
$bytes_sent
$body_bytes_sent
,
$connection
$connection_requests
$msec
, ,
$pipe
http , "p", “."
$request_length
( , )
$request_time
, , , ,
$status
$time_iso8601
, “2017-05-24T18:31:27+08:00”
$time_local
, "24/May/2017:18:31:27 +0800"
$http_referer
referer 。
$http_user_agent
。
$remote_addr
IP
$http_x_forwarded_for
, web , x_forwarded_for 。
$request
, "GET / HTTP/1.1"
$remote_user
,
$request_uri
, "https://daojia.com/"
사용자 정의 로그 형식의 사용 을 보 여 줍 니 다:
access_log /var/logs/nginx-access.log
mainlog_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
우 리 는 log 를 사용한다format 명령 은 main 형식 을 정의 하고 accesslog 명령 에서 그것 을 인용 했다.만약 클 라 이언 트 가 요청 을 한다 면 https://suyunfe.com/ 제 가 캡 처 한 요청 로그 기록 을 보 겠 습 니 다.
112.195.209.90 - - [20/Feb/2018:12:12:14 +0800] "GET / HTTP/1.1" 200 190 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Mobile Safari/537.36" "-"
우 리 는 최종 로그 기록
$remote_user
, $http_referer
, $http_x_forwarded_for
이 모두 하나의 -
에 대응 하 는 것 을 보 았 다. 이것 은 이 몇 개의 변수 가 비어 있 기 때문이다.설정 errorlog
오류 로 그 는 Nginx 에서 error 를 통 해log 명령 이 실 현 됐 습 니 다.이 명령 은 서버 와 요청 처리 과정 에서 의 오류 정 보 를 기록 합 니 다.
문법
오류 로그 파일 의 경로 와 로그 단 계 를 설정 합 니 다.
error_log file [level];
Default:
error_log logs/error.log error;
첫 번 째 매개 변 수 는 로그 의 기록 위 치 를 지정 합 니 다.
두 번 째 매개 변 수 는 로그 의 단 계 를 지정 합 니 다.level 은 debug, info, notice, warn, error, crit, alert, emerg 의 임 의 값 일 수 있 습 니 다.그 수치 범 위 는 긴급 정도 에 따라 낮은 것 에서 높 은 것 으로 배열 되 어 있 음 을 알 수 있다.로그 의 오류 단계 가 level 에서 지정 한 값 과 같 거나 높 아야 오류 로그 에 기록 할 수 있 습 니 다.기본 값 은 error 입 니 다.
기본 용법
error_log /var/logs/nginx/nginx-error.log
main, http, mail, stream, server, location 역할 영역 에 설정 할 수 있 습 니 다.
예 에서 오류 로그 의 경 로 를 지정 하 였 습 니 다.
/var/logs/nginx/nginx-error.log
로그 단 계 는 기본 error 를 사용 합 니 다.open_log_file_cache
모든 로그 기록 의 기록 은 파일 을 열 고 기록 을 쓴 다음 로그 파일 을 닫 습 니 다.로그 파일 경로 에 변 수 를 사용 했다 면
access_log /var/logs/$host/nginx-access.log
성능 을 향상 시 키 기 위해 open 을 사용 할 수 있 습 니 다.log_file_cache 명령 은 로그 파일 설명자 의 캐 시 를 설정 합 니 다.문법
open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
기본 용법
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;
http, server, location 역할 영역 에 설정 할 수 있 습 니 다.
예 를 들 어 캐 시 최대 1000 개의 로그 파일 설명 자 를 설정 합 니 다. 20s 내 에 캐 시 에 있 는 로그 파일 설명자 가 최소 2 번 방문 해 야 캐 시 에서 닫 히 지 않 습 니 다.캐 시 에 있 는 파일 설명자 의 파일 이름 이 존재 하 는 지 1 분 간격 으로 확인 합 니 다.
총결산
Nginx 중 accesslog 와 errorlog 명령 은 로그 와 오류 로 그 를 설정 합 니 다. log 를 통 해format 로그 형식 을 사용자 정의 할 수 있 습 니 다.로그 파일 경로 에 변 수 를 사용 하면 open 을 통 해log_file_cache 명령 으로 캐 시 를 설정 하여 성능 을 향상 시 킵 니 다.
그리고 accesslog 와 logformat 에서 많은 변 수 를 사 용 했 습 니 다. 이 변 수 는 일일이 열거 되 지 않 았 습 니 다. 상세 한 변수 정 보 는 Nginx 공식 문 서 를 참고 할 수 있 습 니 다. http://nginx.org/en/docs/vari...
저자: antwang
juejin.im/post/5aa09bb3f265da238f121b6c
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
심도 분석: 자바 에서 어떻게 이상 한 지 한 편 으로 해결 해 드릴 게 요!1. try 코드 블록 에 이상 이 발생 할 수 있 는 코드 를 넣 었 습 니 다. try 에 이상 이 생기 면 try 코드 블록 에 있 는 프로그램 은 계속 실행 되 지 않 고 catch 에 있 는 코드 에 맡 겨...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.