동일한 서버에서 NginX를 통해 몇 가지 다른 도메인을 제공하고 있으며 각각 고유 한 파일에 기록합니다. 회전 할 스크립트를 설정하고 이러한 파일을 압축하여 cron에 추가해야합니다.
이전 로그 파일을 이동 한 후 NginX가 새 로그 파일을 열려면 무언가를 수행해야한다는 것을 알고 있습니다. 누군가 나에게 nginx 로그 파일을 안전하게 회전시키는 절차를 줄 수 있습니까? logrotate를 사용해야한다고 생각합니다. 어떻게 구성합니까?
체계:
- 우분투 9.04 서버 에디션.
- nginx / 0.7.61
답변
유닉스 데몬은 행업 신호 ( SIGHUP
) 를 보낼 때 로그 파일을 플러시 및 / 또는 회전시키는 일종의 비공식적 인 준 표준이되었습니다 . Nginx는이 규칙을 문자에 따르지 않지만 USR1
Nginx 웹 사이트에서 Log Rotation 이라는 제목으로 문서화 된 것과 같은 방식으로 신호에 응답합니다 .
그래서, 당신은 같은 것을 시도 할 수 있습니다
kill -s USR1 `pidof nginx`
답변
nginx 로그 로그 :
# nginx SIGUSR1: Re-opens the log files.
/opt/nginx/logs/access.log {
missingok
notifempty
delaycompress
sharedscripts
postrotate
test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
endscript
}
/opt/nginx/logs/error.log {
missingok
notifempty
delaycompress
sharedscripts
postrotate
test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
endscript
}
로그 레일 생산 로그 :
/home/app_user/apps/railsapp/log/production.log {
missingok
notifempty
delaycompress
sharedscripts
postrotate
test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
endscript
}
답변
logrotate를 사용하는 경우 다음 위치 (올바른 위치)를 loginate.conf의 nginx 섹션에 추가하십시오.
postrotate
kill -s USR1 `cat /location/of/nginx.pid`
endscript
logrotate (8) 매뉴얼 페이지 에 따르면