Nginx 로그 설정 및 분할
log_형식 문법
log_format formatName formatParams
log_형식 문법 설명
log_format
formatName ,
formatParams ,
log_format 매개 변수 목록
$msec
$remote_addr IP
$remote_user
$http_user_agent
$http_x_forwarded_for IP( )
$time_local
$time_iso8601 ISO8601
$request_time
$connection
$connection_requests
$request URL HTTP
$request_body
$request_length
$status
$http_referer
$body_bytes_sent ( )
$bytes_sent
access_로그: 출력 로그
access_로그 문법
access_log logPath [formatName]
access_로그 문법 설명
access_log
logPath
formatName
절단 로그
1. 스 크 립 트 로 자 르 기
스 크 립 트 편집
tianshl@tianshl nginx $ vim nginx_log_division.sh
스 크 립 트 내용
#! /bin/sh
#
yesterday=`date -v -1d +%Y%m%d`
#
log_path="/usr/local/var/log/nginx/"
# SDK
sdk_path=${log_path}sdk
#
mv -f ${sdk_path}.log ${sdk_path}_${yesterday}.log
#
pid_path="/usr/local/var/run/nginx.pid"
sudo kill -USR1 `cat ${pid_path}`
정시 임무
루트 로 전환
tianshl@tianshl nginx $ sudo su root
crontab 편집
sh-3.2# crontab -e
crontab 한 줄 추가
0 0 * * * sh /usr/local/var/log/nginx/nginx_log_division.sh
추가 성공 여부 보기
sh-3.2# crontab -l
2. 스 크 립 트 로 자 르 지 않 기
server 세그먼트 다음 코드 추가
if ($time_iso8601 ~ "(\d{4})-(\d{2})-(\d{2})") {
set $time $1$2$3;
}
로그 파일 경로 에 날짜 인자 추가
access_log /var/log/nginx/api-$time.log;
밤 을 들다
events {
worker_connections 1024;
}
http {
server {
# 88
listen 88;
if ($time_iso8601 ~ "(\d{4})-(\d{2})-(\d{2})") {
set $time $1$2$3;
}
location /sdk {
# sdk
access_log /usr/local/var/log/nginx/sdk-$time.log;
proxy_pass http://localhost:8888;
}
}
}
밤
1. /sdk , , 。
2. 、 、 、 、 、 。
밤 을 들다
nginx. conf 와 같은 프로필 편집
tianshl@tianshl ~ $ vim /usr/local/etc/nginx/nginx.conf
구성 내용
events {
worker_connections 1024;
}
http {
# sdk
log_format sdk_log '$remote_addr - $status';
# api
log_format api_log $request_body;
server {
# 88
listen 88;
location /sdk {
# sdk
access_log /usr/local/var/log/nginx/sdk.log sdk_log;
proxy_pass http://localhost:8888;
}
location /api {
# api
access_log /usr/local/var/log/nginx/api.log api_log;
proxy_pass http://localhost:8888;
}
}
}
다시 시작 nginx
tianshl@tianshl ~ $ sudo nginx
nginx 시작 성공 후 4 개의 로그 파일 자동 생 성
tianshl@tianshl ~ $ cd /usr/local/var/log/nginx
tianshl@tianshl nginx $ ls
access.log api.log error.log sdk.log
로그 보기
tianshl@tianshl nginx $ tail -f *.log
==> access.log <==
==> api.log <==
==> error.log <==
==> sdk.log <==
sdk 요청 및 로그 보기
==> sdk.log <==
127.0.0.1 - 502
테스트 결과
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
여러 모니터와 Mac의 화면 공유 🖥🖥 ▶️🖥🖥MacOS는 공식 원격 데스크톱 앱인 "화면 공유"를 제공하지만 '다중 모니터 대 다중 모니터' 원격 액세스를 지원하지 않습니다. 하나는 첫 번째 모니터에 해당하고 다른 하나는 두 번째 모니터에 해당하는 2개의 세션...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.