介绍
ngx_req_status 用来展示 nginx 请求状态信息,类似于 apache 的 status, nginx 自带的模块只能显示连接数等等
信息,我们并不能知道到底有哪些请求、以及各 url 域名所消耗的带宽是多少。
ngx_req_status 提供了这些功能
- 按域名、 url、 ip 等等统计信息
- 统计总流量
- 统计当前带宽\峰值带宽
- 统计总请求数量
安装
# cd /usr/local/src/ # wget "http://nginx.org/download/nginx-1.4.2.tar.gz" # tar -xzvf nginx-1.4.2.tar.gz # wget https://github.com/zls0424/ngx_req_status/archive/master.zip -O ngx_req_status.zip # unzip ngx_req_status.zip # cd nginx-1.4.2/ # patch -p1 < ../ngx_req_status-master/write_filter.patch # ./configure --prefix=/usr/local/nginx-1.4.2 --add-module=../ngx_req_status-master # make -j2 # make install
配置
http { # 定义状态信息名,以及空间 req_status_zone server_name $server_name 256k; req_status_zone server_addr $server_addr 256k; req_status_zone server_url $server_name$uri 256k; # 启动 req_status server_name server_addr server_url; server { server_name test.ttlsa.com; location /ttlsa-req-status { # 显示 req_status_show on; } } }
指令
req_status_zone
- 语法:
- req_status_zone name string size
- 默认值:
- None
- 配置块:
- http
- 定义请求状态 ZONE,请求按照 string 分组来排列,例如:
- req_status_zone server_url $server_name$uri 256k;
- 域名+uri 将会形成一条数据,可以看到所有 url 的带宽,流量,访问数
req_status
- 语法:
- req_status zone1[ zone2]
- 默认值:
- None
- 配置块:
- http, server, location
- 在 location 中启用请求状态,你可以指定更多 zones。
req_status_show
- 语法:
- req_status_show on
- 默认值:
- None
- 配置块:
- location
- 展示数据
测试
如上有请求的信息,例如 req-status 这个页面,中流量是 146KB,当前带宽是 0,总请求数量是 47,最大并非连接数是 1.
转自:运维时间