Назад | Перейти на главную страницу

nginx host server log ротация всех сайтов

Я установил отдельные файлы журналов для каждого из моих сайтов в каталоге

/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
}