Настройка logrotate для openresty/nginx в centos 7
Требуется настроить logrotate для openresty/nginx под centos 7.
Я подготовил конфигурацию, но она некорректная. В 00:00 текущий локальный access.log лог обнуляется, но не формируется новый лог файл за предыдущий день.
openresty/nginx работает под nobody
Вопрос как исправить проблему с формированием лога за предыдущий день.
/usr/local/openresty/nginx/log/*log {
create 0644 nobody nobody
daily
rotate 365
missingok
notifempty
sharedscripts
postrotate
dateext
/bin/kill -1 `cat /usr/local/openresty/nginx/logs/nginx.pid 2>/dev/null` 2>/dev/null || true
endscript
}
Ответы (1 шт):
Скорее всего, NGINX продолжает писать в уже переименованный файл, так как не получает должный сигнал о том что лог нужно открыть заново.
За это отвечает postrotate. Из конфига стандартного NGINX:
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
Попробуйте заменить на это, изменив путь к PID файлу.
Если после ротации даже не создаётся пустой файл, значит директива create не верна и не позволяет этому пользователя создавать файлы в директории. Проверьте что nobody можно создать файл в /usr/local/openresty/nginx/log/:
sudo -u nobody touch /usr/local/openresty/nginx/log/test.txt