温馨提示×

为何linux nginx日志过大

小樊
51
2026-09-14 18:20:36
栏目: 智能运维

Linux 下 Nginx 日志过大的原因通常可以归纳为以下几类,按最常见 → 较少见说明:


一、访问量太大(最常见)

  • 网站/接口访问量大,尤其是:
    • API 接口被频繁调用
    • 爬虫、扫描器、恶意请求
    • 静态资源(图片、JS、CSS)未缓存
  • access.log 会快速增长

典型表现

access.log  5G  10G  甚至更大

二、日志级别设置过低

Nginx 默认:

error_log  /var/log/nginx/error.log  warn;

但如果设置成:

error_log  /var/log/nginx/error.log  debug;

→ 会记录大量调试信息,日志暴涨


三、未开启日志切割(log rotate)

很多服务器:

  • 没有配置 logrotate
  • 或 logrotate 配置错误

结果:

  • 日志一直追加,不轮转
  • 单文件越来越大

四、重复记录 / 配置错误

常见错误:

  • 多个 server 块都写了 access_log
  • include 重复
  • 反向代理时前后端都记日志

五、恶意请求 / 攻击

  • CC 攻击
  • 扫描器暴力访问
  • 错误 URL 被疯狂请求

这些请求即使返回 404,也会写日志


六、静态资源未缓存

浏览器或 CDN 未缓存:

  • 图片
  • JS / CSS
  • 字体

每次请求都写 access.log


七、未关闭不需要的日志

例如:

  • 健康检查请求
  • 内部接口
  • 监控探活

这些也可以记日志,但没必要


八、磁盘未告警

日志涨了但:

  • 没监控
  • 没告警
  • 直到磁盘 100%

常见解决方式(简要)

  1. 配置 logrotate
  2. 合理设置日志级别
  3. 关闭不必要的 access_log
  4. 使用 buffer 提升性能
access_log  /var/log/nginx/access.log  main buffer=32k flush=5s;
  1. 屏蔽恶意 IP / 爬虫
  2. 静态资源加缓存

如果你愿意,可以:

  • 贴出 nginx.conf
  • 或 ls -lh /var/log/nginx
  • 或当前日志大小

我可以帮你具体分析原因并给出优化方案。

0 踩