I have a problem with nginx/logrotate. The problems is that nginx is logging access to 2 files (main and data).
I have the following contrab setting:
0 * * * * /usr/sbin/logrotate -f /home/orwell/orwell-setup/bin/logrotate-nginx
And the file "logrotate-nginx" has the following content:
/tmp/data.log {
rotate 90
daily
missingok
notifempty
size 1
sharedscripts
postrotate
[ ! -f /tmp/nginx.pid ] || kill -USR1 `cat /tmp/nginx.pid`
MORE THINGS
endscript
}
/tmp/main.log {
rotate 90
daily
missingok
notifempty
size 1
sharedscripts
postrotate
[ ! -f /tmp/nginx.pid ] || kill -USR1 `cat /tmp/nginx.pid`
MORE THINGS
endscript
}
The work is done in the two files, but there is a problem that nginx stops logging into those files. Both files are created, but they are empty.
Any ideas why nginx stop logging info to both files?
Best Answer
A bit late, but I've found it seems like its a bug in the USR1 signalling to nginx. According to the documentation it is meant to re-open the logs (http://wiki.nginx.org/LogRotation), but it doesn't appear to.
I've put a workaround in by sending a HUP instead, which will reload the configuration.
It appears to fix it, but if the USR1 call was working, it would be healthier to do that as its the minimal operation. HUP I don't think will drop any connections at least.