Nginx 로그는 파일로 작성됩니다. 매일 Nginx 로그가 필요합니다
인터넷에서 방법을 많이 봤는데, 모두 스크립트를 작성하고 로그 파일을 고정된 형식으로 자르는 것이었습니다
Nginx는 자체적으로 로그 커팅을 할 수 없나요?
phpcn_u15822017-05-16 17:31:36
크론이 실행 중인지 확인하세요
으아아아구성 파일 수정
으아아아예정된 작업 확인
으아아아logrotate 구성 파일 vi /etc/logrotate.d/nginx
쓰기 으아아아테스트 구성
으아아아怪我咯2017-05-16 17:31:36
시스템 관리자의 로깅 요구 사항은 끊임없이 변화하고 있습니다. 경량화를 위해 Nginx는 실제로 로그 관리에 대해 걱정하지 않습니다.
공식 LogRotation 위키 페이지
당신도 그것을 찾았을 것입니다. 자신의 스크립트를 사용하거나 logrotate를 사용할 수 있습니다.
我想大声告诉你2017-05-16 17:31:36
nginx 로그 파일에는 회전 기능이 없습니다. 처리하지 않으면 로그 파일이 점점 커집니다. 다행히 nginx 로그 절단 스크립트를 작성하여 로그 파일을 자동으로 잘라낼 수 있습니다.
첫 번째 단계는 로그 파일의 이름을 바꾸는 것입니다. nginx가 로그 파일을 찾지 못하고 이름을 바꾼 후 로그가 손실되는 것에 대해 걱정할 필요가 없습니다. 원래 이름으로 로그 파일을 다시 열기 전에 nginx는 이름을 바꾼 파일에 로그를 계속 기록합니다. Linux는 파일 이름이 아닌 파일 설명자를 사용하여 파일을 찾습니다.
두 번째 단계는 USR1 신호를 nginx 메인 프로세스로 보내는 것입니다.
신호를 받은 후 nginx의 기본 프로세스는 구성 파일에서 로그 파일 이름을 읽고, 로그 파일(구성 파일의 로그 이름으로 이름 지정)을 다시 열고, 작업자 프로세스의 사용자를 소유자로 사용합니다. 로그 파일.
로그 파일을 다시 연 후 nginx 기본 프로세스는 동일한 이름의 로그 파일을 닫고 새로 열린 로그 파일을 사용하도록 작업자 프로세스에 알립니다.
작업 프로세스는 즉시 새 로그 파일을 열고 동일한 이름의 로그 파일을 닫습니다.
그런 다음 이전 로그 파일을 처리할 수 있습니다.
nginx 로그 날짜별 자동 자르기 스크립트는 다음과 같습니다
logs_path="/usr/local/nginx/logs/"
pid_path="/usr/local/nginx/nginx.pid"
mv ${logs_path}access.log ${logs_path}access_$(date -d "어제" +"%Y%m%d").log
kill -USR1 cat ${pid_path}
위 스크립트 nginx_log.sh를 저장하거나 여기를 클릭하여 다운로드하세요
crontab 설정 작업
0 0 * * * bash /usr/local/nginx/nginx_log.sh
매일 0시에 nginx 로그 이름을 날짜 형식으로 변경하고 오늘의 새 로그 파일을 다시 생성합니다.
자세한 출처 참고: http://www.nginx.cn/255.html