nginx 로그 파일에는 회전 기능이 없습니다. 처리하지 않으면 로그 파일이 점점 커집니다. 다행히 nginx 로그 절단 스크립트를 작성하여 로그 파일을 자동으로 잘라낼 수 있습니다.
첫 번째 단계는 로그 파일의 이름을 바꾸는 것입니다. nginx가 로그 파일을 찾지 못하고 이름을 바꾼 후 로그가 손실되는 것에 대해 걱정할 필요가 없습니다. 원래 이름으로 로그 파일을 다시 열기 전에 nginx는 이름을 바꾼 파일에 로그를 계속 기록합니다. Linux는 파일 이름이 아닌 파일 설명자를 사용하여 파일을 찾습니다.
두 번째 단계는 USR1 신호를 nginx 메인 프로세스로 보내는 것입니다.
신호를 받은 후 nginx의 기본 프로세스는 구성 파일에서 로그 파일 이름을 읽고, 로그 파일(구성 파일의 로그 이름으로 이름 지정)을 다시 열고, 작업자 프로세스의 사용자를 소유자로 사용합니다. 로그 파일.
로그 파일을 다시 연 후 nginx 기본 프로세스는 동일한 이름의 로그 파일을 닫고 새로 열린 로그 파일을 사용하도록 작업자 프로세스에 알립니다.
크론이 실행 중인지 확인하세요
으아아아구성 파일 수정
으아아아예정된 작업 확인
으아아아logrotate 구성 파일 vi /etc/logrotate.d/nginx
쓰기 으아아아테스트 구성
으아아아시스템 관리자의 로깅 요구 사항은 끊임없이 변화하고 있습니다. 경량화를 위해 Nginx는 실제로 로그 관리에 대해 걱정하지 않습니다.
공식 LogRotation 위키 페이지
당신도 그것을 찾았을 것입니다. 자신의 스크립트를 사용하거나 logrotate를 사용할 수 있습니다.
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
가장 쉬운 방법은 구성 파일에서 직접 구성하는 것입니다.
으아아아이 방법은 종종 날짜 없이 파일을 생성하므로 더 이상 사용되지 않습니다