在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、最忙的 IP

    pip 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