nginx 日志突然变多,通常不是 nginx 本身的问题,而是请求量或配置发生了变化。常见原因可以按“由外到内”来排查:
排查:
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
看是不是某些 IP 特别多。
典型现象:
error_log /var/log/nginx/error.log debug;
debug / info 会记录大量内容。
检查:
grep error_log nginx.conf
例如:
access_log /var/log/nginx/access.log;
# 在 server / location 里又写了一遍
表现:
检查:
ls -lh /var/log/nginx/
logrotate -d /etc/logrotate.d/nginx
# 1. 看请求最多的 IP
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
# 2. 看状态码分布
awk '{print $9}' access.log | sort | uniq -c | sort -nr
# 3. 看 URL
awk '{print $7}' access.log | sort | uniq -c | sort -nr | head
# 4. 看时间分布
awk '{print $4}' access.log | cut -d: -f1-3 | sort | uniq -c
如果你愿意,可以把:
nginx.conf / server 配置发出来,我可以直接帮你判断是哪一种。