Nginx 日志自动 rotate 的配置

Nginx 原生是不带有日志切割功能。

其依赖的是 Linux logrotate 进程。

配置位置为:vi /etc/logrotate.d/nginx

递归切割

默认 logrotate 不支持 ** 递归

多文件切割可以采用配置:

/var/log/nginx/*.log
/var/log/nginx/*/*.log
/var/log/nginx/*/*/*.log
{
    daily
    rotate 14
    compress
    sharedscripts

    postrotate
        [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
    endscript
}

运行下面的命令来强制执行:sudo logrotate -f /etc/logrotate.d/nginx

如果遇到了权限错误,可以执行下面的命令:

sudo chown -R root:adm /var/log/nginx
sudo chmod 755 /var/log/nginx