在 Debian 上统计 Nginx 流量,常见做法有 4 类:日志统计、实时监控、系统级统计、第三方工具。下面按实用程度给你整理。
Debian 默认路径:
/var/log/nginx/access.log
awk '{sum+=$10} END {print sum/1024/1024 " MB"}' /var/log/nginx/access.log
$10是响应大小字段(默认 log_format)
awk '{ip[$1]+=$10} END {for(i in ip) print ip[i]/1024/1024" MB", i}' \
/var/log/nginx/access.log | sort -nr | head
awk '{url[$7]+=$10} END {for(i in url) print url[i]/1024/1024" MB", i}' \
/var/log/nginx/access.log | sort -nr | head
检查是否启用:
nginx -V 2>&1 | grep stub_status
配置:
location /nginx_status {
stub_status on;
allow 127.0.0.1;
deny all;
}
查看:
curl http://127.0.0.1/nginx_status
只显示:
goaccess(推荐)安装:
apt install goaccess
实时分析:
goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED
或终端实时:
goaccess /var/log/nginx/access.log --log-format=COMBINED -o stdout
✅ 可看:
iftopapt install iftop
iftop -i eth0
vnstatapt install vnstat
vnstat -l # 实时
vnstat # 按天/月
✅ 适合看 Nginx + 其他服务总流量
log_format main '$remote_addr - $request $body_bytes_sent';
access_log /var/log/nginx/access.log main;
然后统计:
awk '{sum+=$NF} END {print sum/1024/1024" MB"}' /var/log/nginx/access.log
| 场景 | 推荐方式 |
|---|---|
| 简单统计 | access.log + awk |
| 可视化 | GoAccess |
| 实时监控 | iftop / vnstat |
| 生产环境 | 日志 + GoAccess |
如果你愿意,我可以:
你现在是 个人服务器还是生产环境?