温馨提示×

nginx日志为何频繁刷新

小樊
40
2026-09-17 19:27:05
栏目: 编程语言

nginx 日志“频繁刷新”通常不是异常,而是正常行为或配置/业务特征导致的。下面按常见原因逐一说明,你可以对照排查。


一、正常原因(多数情况)

1. 访问量本身很大

  • 有持续请求(用户、爬虫、API 调用)
  • 日志自然不断写入

✅ 判断:

wc -l access.log
tail -f access.log

如果每秒都有新行,且来源正常,就是正常流量。


2. 健康检查 / 探活请求

  • K8s、负载均衡、Docker、云厂商
  • 每几秒一次 /health、/ping

示例日志:

GET /healthz HTTP/1.1" 200

✅ 这是设计行为,不是问题。


3. 爬虫或机器人访问

  • 搜索引擎
  • 恶意扫描器

示例:

GET /wp-admin HTTP/1.1" 404

✅ 可限流或封 IP。


二、配置相关原因

4. 日志级别过低(debug / info)

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

✅ 改回:

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

5. 同时写 access + error 日志

  • 请求异常
  • 大量 4xx / 5xx

✅ 检查:

tail error.log

6. 未做日志切割

  • 单文件一直增长
  • 看起来“一直在动”

✅ 建议:

  • logrotate
  • 或 nginx 自带:
access_log off; # 不必要接口

三、程序或架构问题

7. 前端疯狂请求接口

  • 轮询(polling)
  • WebSocket 重连失败
  • 前端 bug

✅ 看日志中的:

  • URL 是否固定
  • 状态码是否异常

8. 反向代理循环 / 重定向

location / {
    proxy_pass http://localhost;
}

导致请求被反复转发。

✅ 检查是否有 301/302 循环。


四、安全相关(需警惕)

9. 被攻击

  • CC 攻击
  • 扫描爆破

✅ 特征:

  • 同一 IP 高频
  • 大量 404 / 403

✅ 应对:

limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s;

五、快速排查清单

# 实时看
tail -f /var/log/nginx/access.log

# 统计 IP
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head

# 统计 URL
awk '{print $7}' access.log | sort | uniq -c | sort -nr | head

# 状态码
awk '{print $9}' access.log | sort | uniq -c

如果你愿意,可以:

  • 贴一段 access.log 示例
  • 或说明 nginx 版本 + 部署方式(Docker / K8s / 裸机)

我可以直接帮你判断是“正常”还是“有问题”。

0 踩