温馨提示×

如何统计debian nginx流量

小樊
65
2026-09-13 07:44:19
栏目: 智能运维

在 Debian 上统计 Nginx 流量,常见做法有 4 类:日志统计、实时监控、系统级统计、第三方工具。下面按实用程度给你整理。


一、通过 Nginx 访问日志统计(最常用)

1. Nginx 日志位置

Debian 默认路径:

/var/log/nginx/access.log

2. 统计总流量(响应字节数)

awk '{sum+=$10} END {print sum/1024/1024 " MB"}' /var/log/nginx/access.log

$10 是响应大小字段(默认 log_format)

3. 按 IP 统计流量

awk '{ip[$1]+=$10} END {for(i in ip) print ip[i]/1024/1024" MB", i}' \
/var/log/nginx/access.log | sort -nr | head

4. 按 URL 统计流量

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 流量

方法 1:ngx_http_stub_status_module

检查是否启用:

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

只显示:

  • 连接数
  • 请求数
    ❌ 不含流量大小

方法 2:使用 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

✅ 可看:

  • 带宽
  • 访客
  • 热点 URL

三、系统级流量统计(网卡层面)

1. 使用 iftop

apt install iftop
iftop -i eth0

2. 使用 vnstat

apt install vnstat
vnstat -l   # 实时
vnstat      # 按天/月

✅ 适合看 Nginx + 其他服务总流量


四、Nginx 日志增强(推荐生产环境)

自定义 log_format(含流量)

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

如果你愿意,我可以:

  • 帮你写 一键流量统计脚本
  • 配置 Nginx 流量监控面板
  • 按 域名 / 虚拟主机 分别统计流量

你现在是 个人服务器还是生产环境?

0 踩