
本文介绍如何在 Debian 系统上配置 Nginx 日志轮转,主要利用 logrotate 工具。
步骤一:安装 logrotate
首先,确保系统已安装 logrotate:
sudo apt-get update sudo apt-get install logrotate
步骤二:创建或编辑 Nginx logrotate 配置文件
在 /etc/logrotate.d/ 目录下创建或编辑名为 nginx 的配置文件:
sudo nano /etc/logrotate.d/nginx
步骤三:添加配置文件内容
将以下内容添加到 nginx 文件中:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 $(cat /var/run/nginx.pid)
fi
endscript
}
参数说明:
-
daily:每天轮转日志。 -
missingok:如果日志文件不存在,则忽略错误。 -
rotate 7:保留 7 个日志文件。 -
compress:压缩已轮转的日志文件。 -
delaycompress:延迟压缩,直到下次轮转。 -
notifempty:如果日志文件为空,则不进行轮转。 -
create 0640 www-data adm:创建新的日志文件,权限为 0640,所有者为www-data,组为adm。 -
sharedscripts:多个日志文件共享同一个postrotate脚本。 -
postrotate ... endscript:轮转后执行的脚本,发送 USR1 信号给 Nginx 进程,使其重新打开日志文件。 注意,这里将cat /var/run/nginx.pid使用了命令替换$(...),更安全。
步骤四:测试配置
使用以下命令测试配置:
sudo logrotate -d /etc/logrotate.d/nginx
-d 参数用于测试模式,不会实际执行轮转。 如有错误,会显示出来。
步骤五:验证定时任务
logrotate 通常由每日 cron 任务自动运行。您可以检查 /etc/cron.daily/logrotate 文件以确认:
cat /etc/cron.daily/logrotate
如果该文件存在且包含正确的 logrotate 命令,则日志轮转将每天自动执行。
完成以上步骤后,您的 Debian 系统上的 Nginx 日志将按照配置进行轮转。










