nginx 로그 에 접근 하고 지정 한 날짜 전의 로그 기록 설정 방법 을 삭제 합 니 다.
운영 체제: CentOS
사이트 1: bbs. jb51. net
사이트 2: sns. jb51. net
Nginx 설치 경로: / usr / local / nginx
Nginx 프로필 경로: / usr / local / nginx / conf / nginx. conf
사이트 1 프로필 경로: / usr / local / nginx / conf / vhost / bbs. jb51. net. conf
사이트 2 설정 파일 경로: / usr / local / nginx / conf / vhost / sns. jb51. net. conf
목적:
1. 사이트 1 과 사이트 2 의 nginx 방문 로 그 를 날짜 별로 저장 합 니 다. 로그 경 로 는 다음 과 같 습 니 다.
사이트 1: / usr / local / nginx / logs / nginxlogs/bbs_logs
사이트 2: / usr / local / nginx / logs / nginxlogs/sns_logs
2. 30 일 이내 의 로그 기록 만 유지
구체 적 인 조작:
1. 로그 저장 경로 만 들 기
mkdir -p /usr/local/nginx/logs/nginx_logs/bbs_logs
mkdir -p /usr/local/nginx/logs/nginx_logs/sns_logs
2. Nginx 로그 기록 형식 설정
vi / usr / local / nginx / conf / nginx. conf 편집
log_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 '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'$http_host $upstream_status $upstream_addr $request_time $upstream_response_time'; #
:wq! #저장 종료
3. 가상 호스트 설정 파일 설정
vi / usr / local / nginx / conf / vhost / bbs. jb51. net. conf 편집 #,bbs. jb51. net 에서;이 줄 아래 에 추가
access_log logs/bbs_access.log main; # main main
:wq! #저장 종료
vi / usr / local / nginx / conf / vhost / sns. jb51. net. conf 를 편집 하고 sns. jb51. net 에서 편집 합 니 다.이 줄 아래 에 추가
access_log logs/sns_access.log main; # main main
:wq! #
service nginx reload # nginx
4. Nginx 로그 절단 스 크 립 트 만 들 기
vi / home / crontab / cut 편집nginx_log.sh
#!/bin/sh
logs_path="/usr/local/nginx/logs/"
DAYS=30
mv ${logs_path}bbs_access.log ${logs_path}nginx_logs/bbs_logs/bbs_access_$(date -d "yesterday" +"%Y%m%d").log
mv ${logs_path}sns_access.log ${logs_path}nginx_logs/sns_logs/sns_access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
find ${logs_path}nginx_logs/bbs_logs/ -name "bbs_access_*" -type f -mtime +$DAYS -exec rm {} \;
find ${logs_path}nginx_logs/sns_logs/ -name "sns_access_*" -type f -mtime +$DAYS -exec rm {} \;
:wq! #
chmod +x /home/crontab/cut_nginx_log.sh #
5. 작업 계획 추가, 수정 / etc / crontab
vi / etc / crontab 마지막 줄 에 추가
0 0 * * * root /home/crontab/cut_nginx_log.sh #
:wq! #저장 종료
6. crond 를 다시 시작 하면 설정 이 적 용 됩 니 다.
/etc/rc.d/init.d/crond restart #yum install -y vixie-cron ,
chkconfig crond on #
service crond start #
매일 / usr / local / nginx / logs / nginxlogs/bbs_logs 와 / usr / local / nginx / logs / nginxlogs/sns_logs
디 렉 터 리 아래 유사 bbs 생 성access_20140126. log 와 bbsaccess_로그 파일
그리고 최근 30 일간 의 로그 기록 만 유지 합 니 다.
이로써 리 눅 스 는 정시 에 Nginx 접근 로 그 를 자 르 고 지 정 된 일수 전의 로그 기록 을 삭제 합 니 다.
비고: 스 크 립 트 가 실행 중 다음 오류 가 발생 하면
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed
해결 방법:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# nginx -c nginx.conf
확장 읽 기: Nginx 접근 로그 파라미터 설명
192.168.21.1 - - [27/Jan/2014:11:28:53 +0800] "GET /2.php HTTP/1.1" 200 133 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1707.0 Safari/537.36" "-"192.168.21.128 200 127.0.0.1:9000 0.119 0.119
$remote_addr: 192.168.21.1
$remote_user: -
$time_local: 27/Jan/2014:11:28:53 +0800
$request: URL HTTP GET /2.php HTTP/1.1
$status: HTTP 200
$body_bytes_sent: 133
$http_referer: -
$http_user_agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1707.0 Safari/537.36
$http_x_forwarded_for:HTTP , IP -
$http_host: URL(IP ) 192.168.21.128
$upstream_status: upstream 200
$upstream_addr: upstream 127.0.0.1:9000
$request_time: 0.119
$upstream_response_time: upstream 0.119
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.