nginx 로그에는 크게 액세스 로그와 오류 로그의 두 가지 유형이 있습니다. 액세스 로그는 주로 nginx에 액세스하는 클라이언트의 모든 요청을 기록하며 형식을 사용자 정의할 수 있습니다. 오류 로그는 주로 클라이언트가 nginx에 액세스하여 오류가 발생할 때 로그를 기록하며 형식은 사용자 정의를 지원하지 않습니다. 두 로그 모두 선택적으로 끌 수 있습니다.
액세스 로그를 통해 사용자 지리적 출처, 점프 소스, 터미널 사용, 특정 URL 방문 횟수와 같은 관련 정보를 얻을 수 있으며, 서비스의 성능 병목 현상을 얻을 수 있습니다. 시스템의 서버가 대기합니다. 따라서 로그를 잘 활용하면 귀중한 정보를 많이 얻을 수 있습니다.
[Access.log]
log_format main '$remote_addr $remote_user [$time_local] "$request" $http_host '
'$status $ upstream_status $body_bytes_sent "$http_referer" '
''$http_user_agent' $ssl_protocol $ssl_cipher $upstream_addr '
''$request_time $upstream_response_time';
변수 설명 |
예 |
|
클라이언트 주소 |
113.140.15.90 | |
클라이언트 사용자 이름 |
- | |
액세스 시간 및 시간대 |
18/7월 /2012:17:00:01 +0800 | |
요청 URI | 및
HTTP프로토콜 "GET / pa/img/home/logo-alipay-t.png HTTP/1.1" |
|
요청 주소는 브라우저에 입력하는 주소입니다( IP | 또는 도메인 이름)
img.alipay.com |
10.253.70.103
|
HTTP요청 상태 |
200 |
|
$upstream_status | upstream 상태 |
200 |
$body_bytes_sent |
클라이언트에게 보낸 파일의 콘텐츠 크기 |
547 |
$http_referer |
점프 소스 |
"https://cashier.alipay.com.../" |
$http_user_agent | 사용자 터미널 에이전트 | "Mozilla/4.0(호환; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C; |
$ssl_proto col |
SSL프로토콜 버전 |
TLSv1 |
$ssl_cipher |
교환 데이터의 알고리즘 |
RC4-SHA |
$upstream_addr |
backendupstream 주소, 즉 실제로 서비스를 제공하는 호스트 주소 |
1 0.228.35.247:80 |
$request_time |
전체 요청의 총 시간 |
0.205 |
$upstream_response_time |
중 요청 프로세스, upstream 응답 시간 |
0.002 |
线上实例:
116.9.137.90 - [02/Aug/2012:14:47:12 +0800] "GET /images/XX/20100324752729.png HTTP/1.1"img.ali 지불. com 200 200 2038 https://cashier.alipay.com/XX/PaymentResult.htm?payNo=XX&outBizNo=2012XX "Mozilla/4.0(호환; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.0.30729; 미디어 센터 PC 6.0; 태블릿 PC 360SE)" TLSv1 AES128-SHA 10.228.21.237:80 0.198 0.001
线下测试($http_referer):
10.14.21.197 - - [14/Aug/2012:17:28:22 +0800] "GET /spanner/watch/v1?--db =ztg-1&--모드=비교&--색인=상태&--옵션=&--클러스터=전체&-F=2012%2F8%2F12-00%3A00%3A00&-T=%2B2880&-i=1&-n= 0&_=1344936501292 HTTP/1.1" 200 94193 "http://spanner.alipay.net/optionFrame/history.html" "Mozilla/5.0(Windows NT 6.1) AppleWebKit/537.1(KHTML, like Gecko) Chrome/21.0.1180.60 Safari /537.1"
备注:$http_referer와중정向有关。
线下测试($http_host):
错误信息
错误说明연결이 닫혔습니다." |
||
uri 的时候出现的异常,是由于upstream还未返回应答给用户时用户断掉连接造成 ,对系统没有影响,可以忽略 |
"recv() 실패 (104: 피어에 의한 연결 재설정)" ( 1 | )服务器的并发连接数超过了其承载weight,服务器会将其中一些连接|
掉;
|
( 2)客户关掉了浏览器,而服务器还 (3)浏览器端按了 Stop "(111: 연결이 거부됨) 업스트림에 연결하는 동안 "사용户재连接时,若遇到后端 upstream | 挂掉或자는 통하지 않고, 会收到该错误|
"(111: 연결이 거부됨) 응답을 읽는 중 업스트림 헤더" |
사용자가 연결 성공 후 데이터를 읽을 때 백엔드 upstream이 끊기거나 차단되면 요청을 보내는 동안 |
|
"(111: 연결 거부됨) 오류가 표시됩니다. upstream" |
Nginx 및 upstream이 성공적으로 연결되어 데이터를 보냅니다. 백엔드 upstream이 중단되거나 차단되면 이 오류가 발생합니다 | |
"(110: 연결 시간 초과) 업스트림에 연결하는 동안" |
"( 110: 연결 시간 초과) 업스트림을 읽는 동안” "(110 연결 시간 초과) 업스트림에서 응답 헤더를 읽는 동안 " |
|
d OUT) 업스트림을 읽는 동안 "
|
NGINX Upstream의 응답 시간 제한 읽기"(104: 연결 재설정 기준) "업스트림 유효하지 않은 전송 헤더가 업스트림에서 응답 헤더를 읽는 중입니다." Upstream 的에서 보낸 응답 헤드가 잘못되었습니다. |
|
"업스트림에서 값이 전송되지 않았습니다. http/1.0 헤더에서 업스트림의 응답 헤더를 확인하세요." |
Upstream 응답 헤드가 잘못되었습니다. "클라이언트가 너무 큰 본문을 보내려고 했습니다." |
|
는 허용되는 클라이언트 요청 콘텐츠의 최대 값을 설정하는 데 사용됩니다. 기본값은 1M, | clientsend body가 설정된 값 |
|
"로그 다시 열기" 를 초과합니다. 사용자가 보낸 것 |
kill -USR1 명령 업스트림 내부에 서버가 없습니다." |
|
upstream은 | server||
"업스트림에 연결하는 동안 라이브 업스트림이 없습니다."
| upstream 모든 서버가 다운되었습니다 |
|
"SSL_do_handshake() 실패"
|
"S 클라이언트로 보내는 동안 SL_write()가 실패했습니다(SSL:)" |
|
"(13: 권한 거부됨) 업스트림을 읽는 동안" |
| "(98 ) |
|
"ngx_slab_alloc() 실패: SSL 세션 공유 캐시에 메모리가 없습니다." |
|
ssl_session_cache 크기 부족 및 기타 이유 |
" 새 SSL을 추가할 수 없습니다. SSL 핸드쉐이킹 중 세션 캐시에 세션을 추가합니다." |
|
ssl_session_cache due to 부족한 크기 및 기타 이유로 |
"send() 실패(111: 연결 거부)" |
|
|
더 많은 Nginx 관련 기술 기사를 보려면 Nginx Tutorial 칼럼을 방문하여 알아보세요! |
위 내용은 nginx 오류 로그를 분석하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!