介绍
ngx_req_status用来展示nginx请求状态信息,类似于apache的status,nginx自带的模块只能显示连接数等等信息,我们并不能知道到底有哪些请求、以及各url域名所消耗的带宽是多少。ngx_req_status提供了这些功能.
功能特性
按域名、url、ip等等统计信息
统计总流量
统计当前带宽\峰值带宽
统计总请求数量
1. 安装
# 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 2. 配置 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; } } } 4. 指令 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 展示数据 5. 测试访问 http://test.com/ttlsa-req-status 如下图 nginx req_status 如上有请求的信息,例如req-status这个页面,中流量是146KB,当前带宽是0,总请求数量是47,最大并非连接数是1. 6. 兼容性 以下版本都兼容 1.4.2 我测试的 1.3.x (last tested: 1.3.5) 1.2.x 1.1.x 1.0.x (last tested: 1.0.2)