最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 中 nginx.conf 如何实现日志按日期自动分割
时间:2026-09-04 18:56:49 编辑:袖梨 来源:一聚教程网
Nginx 本身不支持日志按日期自动分割,需借助 logrotate 或脚本+cron 实现;核心是定时切割日志文件并发送 USR1 信号通知 Nginx reopen 日志句柄。
Nginx 本身不支持日志按日期自动分割,需借助外部工具(如 logrotate)或通过脚本+重载机制实现。核心思路是:定时切割日志文件 + 通知 Nginx 重新打开日志文件(即 reopen 日志句柄)。
使用 logrotate 管理日志切割(推荐)
logrotate 是 Linux 系统最常用、最稳定的日志轮转工具,配合 Nginx 的 USR1 信号可安全完成按天切割。
- 确保 logrotate 已安装(大多数发行版默认自带)
- 创建配置文件,例如 /etc/logrotate.d/nginx:
/var/log/nginx/*.log {dailymissingokrotate 30compressdelaycompressnotifemptycreate 0644 www-data www-datasharedscriptspostrotateif [ -f /var/run/nginx.pid ]; thenkill -USR1 `cat /var/run/nginx.pid`fiendscript}
说明:
daily 表示每天切割一次;
postrotate 中的 kill -USR1 会通知 Nginx 关闭当前日志文件并用新文件名重新打开(Nginx 收到 USR1 后会 reopen 所有 open 的日志文件);
create 指定新日志权限和属主(需与 Nginx 运行用户一致,如 www-data 或 nginx)。
手动脚本 + cron 定时执行(适合定制化场景)
若无法使用 logrotate,可写简单 shell 脚本,由 crontab 每日凌晨触发:
- 新建脚本 /usr/local/bin/nginx-rotate.sh:
#!/bin/bashLOG_DIR="/var/log/nginx"DATE=$(date -d "yesterday" +%Y%m%d)mv "$LOG_DIR/access.log" "$LOG_DIR/access.log.$DATE"mv "$LOG_DIR/error.log" "$LOG_DIR/error.log.$DATE"# 通知 Nginx 重新打开日志kill -USR1 $(cat /var/run/nginx.pid 2>/dev/null)
- 赋予执行权限:
chmod +x /usr/local/bin/nginx-rotate.sh - 添加 cron 任务(如每天 00:00 执行):
0 0 * * * /usr/local/bin/nginx-rotate.sh
注意:确保脚本中路径、用户权限、PID 文件位置与实际环境一致;mv 前可加 test -f 判断避免报错。
nginx.conf 中无需特殊配置,但需确认日志路径规范
Nginx 配置本身不参与切割逻辑,但以下两点影响切割效果:
- 日志路径应为绝对路径,且不要带变量(如 $time_iso8601),否则 logrotate 或脚本无法稳定匹配
- 确保 access_log 和 error_log 指向明确文件,例如:
access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;
不建议写成 access_log /var/log/nginx/access_$(date).log; —— Nginx 不解析 shell 变量,且无法动态更新文件名。
验证是否生效
切割后检查:
– 查看 /var/log/nginx/ 目录下是否有类似 access.log.20240520 的历史文件;
– 执行 ps aux | grep nginx 确认主进程仍在运行;
– 查看最新 access.log 是否有新请求写入(而非追加到旧文件);
– 检查 Nginx 错误日志中无 “open() failed” 类警告(说明 reopen 成功)。
相关文章
- js能被遍历的集合有哪些特征,为何能被遍历 09-04
- React从类组件到Hooks 09-04
- 虫虫钢琴网网页版入口在哪是什么-概念边界和适用条件 09-04
- 用Promise链给有状态写接口做串行队列 09-04
- TPLink TLWR2041N 51 无线路由器无线桥接(WDS)设置指南 09-04
- 苍蓝前线手游福利攻略苍蓝前线各平台渠道礼包领取汇总 09-04