在linux系统中,nginx应该如何查看托管网站对应的请求队列情况
来源:本站原创
点击数: 次
发布时间:2025年08月28日
我们都知道在Windows IIS 管理器里,可以点工作进程 → 看到各个网站的请求队列、并发连接数。
在 Linux 下 Nginx 默认没有这么直观的 GUI,但是可以通过以下几种方式实现相同的监控效果:
🔍 1. 查看 Nginx 内部连接情况
启用 stub_status 模块:
location /nginx_status { stub_status; allow 127.0.0.1; # 只允许本机查看 deny all; }
重载配置后,访问:
curl http://127.0.0.1/nginx_status
返回示例:
Active connections: 291 server accepts handled requests 30917354 30917354 56854883 Reading: 3 Writing: 2 Waiting: 286
含义:
Active connections:当前活跃连接数
Reading:正在读取客户端请求头的连接
Writing:正在向客户端发送响应的连接
Waiting:保持 keep-alive 等待请求的连接
🔍 2. 使用 Nginx 的 access.log
日志里有详细的请求记录,可以按域名区分虚拟主机:
tail -f /var/log/nginx/access.log
配合 grep
看某个站点:
tail -f /var/log/nginx/access.log | grep "www.example.com"
🔍 3. 查看请求队列(排队情况)
Nginx 自身不会排队很多请求(超出 worker_connections
就会被拒绝)。
如果要模拟 IIS「请求队列」的概念,可以用:
netstat -antp | grep :80 netstat -antp | grep :443
或用 ss
:
ss -t state established '( sport = :80 or sport = :443 )'
这样能看到每个连接的状态,比如 SYN_RECV
(等待握手)、ESTABLISHED
(正常)、CLOSE_WAIT
(连接未关闭)等。
🔍 4. 更直观的监控工具
ngxtop:像
top
一样实时显示每秒的请求数、最忙的 URL、最忙的 IPpip install ngxtop ngxtop top requests
GoAccess:实时分析 Nginx 日志,支持 web 界面大屏
goaccess /var/log/nginx/access.log -o report.html --real-time-html
Grafana + Prometheus + nginx_exporter:可视化请求队列、延迟、并发。
总结
最接近 IIS 请求队列视图 →
nginx stub_status
想按域名分开统计 → 用
access.log
+ngxtop
更强大可视化 → GoAccess / Grafana