我已经为目录中的每个站点设置了单独的日志文件。
/var/log/nginx-hosts/
我必须为这些文件配置日志轮转。我开始的基础是
/var/log/nginx-hosts/*.log {
rotate 7
daily
missingok
notifempty
sharedscripts
copytruncate
compress
}
然而,就像apache一样,nginx似乎必须在旋转前关闭,才能真正截断它们。当前的nginx日志旋转配置是:
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi; \
endscript
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
}
我应该把单独的站点日志轮转合并到主文件中,还是在另一个文件中计算出第一个配置。有什么想法?想法?
谢谢你的帮助和节日快乐。
发布于 2011-12-01 02:50:11
在深入研究之后,下面是我如何解决这个问题的方法:
/var/log/nginx-hosts/*.access{
weekly
missingok
rotate 20
compress
dateext
notifempty
create 0640 www-data adm
sharedscripts
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi; \
endscript
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
}
/var/log/nginx-hosts/*.error{
weekly
missingok
rotate 20
compress
dateext
notifempty
create 0640 www-data adm
sharedscripts
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi; \
endscript
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
}
https://serverfault.com/questions/336276
复制相似问题