Я установил отдельные файлы журналов для каждого из моих сайтов в каталоге
/var/log/nginx-hosts/
и мне нужно настроить ротацию журналов для этих файлов. База, с которой я начинаю,
/var/log/nginx-hosts/*.log {
rotate 7
daily
missingok
notifempty
sharedscripts
copytruncate
compress
}
однако, как и apache, кажется, что nginx должен быть отключен перед вращением, чтобы фактически их обрезать. Текущая конфигурация nginx logrotate:
/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
}
следует ли включить ротацию журнала отдельных сайтов в основной или поработать над первой конфигурацией в другом файле. мысли? идеи?
спасибо за вашу помощь и счастливых праздников.
Покопавшись дальше, я решил эту проблему следующим образом:
/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
}