使用logrotate配置Nginx日志轮转,可自动压缩、删除和轮转日志。配置步骤包括:创建/etc/logrotate.d/nginx文件,设置每日轮转、保留7份、延迟压缩、创建新日志并发送USR1信号,最后强制测试配置。该工具依赖cron定时执行,避免磁盘写爆并保留历史日志。
Nginx日志轮转配置方法
作者:技术拾光
时间:2026-06-03
浏览:134
文章目录
在Nginx日志管理中,日志文件持续增大导致磁盘空间告急、检索缓慢是常见痛点。利用系统自带的logrotate工具,可以高效实现日志轮转、压缩与自动清理,有效缓解存储压力。以下从配置到验证,完整介绍Nginx日志轮转的部署步骤。

logrotate是大多数Linux发行版默认集成的日志管理工具,功能清晰:按预设规则自动压缩、删除、轮转日志文件,避免因日志积压导致磁盘溢出。正确配置后,运维人员无需手动干预。
第一步:确认logrotate已安装
多数环境下logrotate已预装。以Debian/Ubuntu为例,可通过以下命令确认或安装:
sudo apt-get install logrotate若系统已存在,终端会提示已是最新版本。
第二步:为Nginx创建独立配置文件
logrotate建议在/etc/logrotate.d/目录下为每个服务单独配置,便于管理且互不干扰。使用以下命令创建Nginx专属配置文件:
sudo nano /etc/logrotate.d/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:每日轮转一次。可按需改为weekly(每周)或hourly(每小时)。rotate 7:保留最近7份轮转日志,更早的自动删除。compress与delaycompress:前者启用压缩,后者延迟一轮压缩(最新轮转的日志不立即压缩,便于近期分析;下次轮转时再压缩)。create 0640 www-data adm:轮转后自动创建新空日志文件并设置权限与属主属组,防止Nginx因无法写入而报错。postrotate脚本:轮转完成后通过USR1信号平滑通知Nginx重新打开日志文件,避免重启导致连接中断。
第四步:测试配置有效性
配置完成后,使用强制轮转命令验证语法与逻辑:
sudo logrotate -f /etc/logrotate.d/nginx若命令无报错,则说明配置正确。可前往/var/log/nginx/目录检查是否生成了带日期后缀的压缩文件。
第五步:确保定时任务正常运行
logrotate依赖cron触发,默认通过/etc/cron.daily/logrotate脚本每天执行一次。确认该文件存在且具有可执行权限即可,无需额外操作。
完成上述配置后,Nginx日志轮转即可自动运行。合理设置轮转策略既能避免磁盘空间被日志占满,又能保留足够的日志历史用于回溯分析,显著提升运维效率。
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。
相关文章