Nginx 日志突然变大,通常不是单一原因,而是访问量、配置、异常请求或系统行为某一方面发生了变化。下面按最常见 → 较少见的顺序帮你梳理原因和排查方法。
排查:
# 看访问量
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
错误请求也会写日志,而且往往比正常请求更频繁。
常见情况:
排查:
awk '{print $9}' access.log | sort | uniq -c | sort -nr
如果 error_log 级别是:
error_log /var/log/nginx/error.log debug;
会记录大量内部信息。
✅ 建议:
error_log /var/log/nginx/error.log warn;
例如:
log_format main '$remote_addr - $request - $http_user_agent ...';
如果包含:
$request_body$upstream_response_time日志会迅速膨胀。
常见现象:
.1 .2.gz 文件检查:
ls -lh /var/log/nginx/
cat /etc/logrotate.d/nginx
改了配置但:
nginx -s reload
没执行或失败,导致:
例如:
表现:
如:
✅ 建议:
location /health {
access_log off;
}
即使流量不大,也会:
# 1. 当前日志大小
du -sh /var/log/nginx/*
# 2. 请求最多的 IP
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
# 3. 状态码分布
awk '{print $9}' access.log | sort | uniq -c | sort -nr
# 4. 请求最多的 URL
awk '{print $7}' access.log | sort | uniq -c | sort -nr | head
我可以直接帮你判断是攻击、Bug 还是配置问题。