【Nginx】模块介绍-ngx_req_status_module

2018-01-27 10:28:23来源:网络收集作者:纳米程序员人点击

分享

ngx_req_status_module

ngx_req_status_module能够统计Nginx中请求的状态信息。


构建

该模块不是Nginx内置的模块,需要用到第三方模块。


首先,将Nginx的压缩包与本模块的压缩包解压在统同一目录下:


$ tar -zxvf nginx-VERSION.tar.gz
$ unzip ngx_req_status-master.zip

然后进入Nginx的文件夹,向Nginx打补丁。


$ cd nginx-VERSION
$ patch -p1 < ../ngx_req_status-master/write_filter-VERSION.patch

译者注:注意write_filter是指带版本号的补丁文件。补丁没打或打错,在编译Nginx的时候都会报错:前者报ngx_http_top_write_filter未声明,后者报重复定义。


接着,进行配置和编译。如果是对已安装的Nginx添加模块,需要先查看Nginx的配置,并在此次配置中全部带上:


$ sbin/nginx -V
nginx version: nginx/1.9.9
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC)
built with OpenSSL 1.0.1u22 Sep 2016
TLS SNI support enabled
configure arguments: --prefix=/home/itv/nginx --with-http_realip_module --with-http_sub_module --with-http_flv_module --with-http_dav_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_addition_module --with-pcre=/home/itv/nginx-install/packinstall/pcre-8.38 --with-openssl=pathTo/openssl-1.0.1u --with-http_ssl_module --with-zlib=pathTo/zlib-1.2.11 --add-module=pathTo/nginx-goodies-nginx-sticky-module-ng-08a395c66e42/
$ ../configure [之前的配置] --add-module=pathTo/ngx_req_status-master
$ make -j2

最后,安装Nginx。如果是对已安装的Nginx添加新模块,则只需要将objs/目录下的nginx文件替换掉Nginx安装路径下sbin/目录的nginx即可。


$ make install
配置示例
http {
req_status_zone server_name $server_name 256k;
req_status_zone server_addr $server_addr 256k;
req_status server_name server_addr;
server {
location /req-status {
req_status_show on;
allow 10.0.0.0/8;
allow 127.0.0.1;
deny all;
}
}
}

该配置会利用一个简单页面来展示下面的信息:


zone_namekey max_activemax_bwtraffic requests activebandwidth
imgstore_appid43276M63G 3740630 0
imgstore_appid53329 87M 2058G 7870529 5025M
server_addr 10.128.1.17 2 8968 24M 18490 0
server_addr 127.0.0.116M5G912 1 0
server_addr 180.96.x.1 3358934M27550G141277391891 356M
server_addr 180.96.x.2 7845M 220G4007040 0
server_addr 180.96.x.3 242 58M 646G2990547 427M
server_name d.123.sogou.com 478 115M2850G 30218726 115 39M
server_name dl.pinyin.sogou.com 913 312M8930G 35345453 225 97M
server_name download.ie.sogou.com 964 275M7462G 7979817 297 135M
指令
req_status_zone

语法:req_status_zone [name] [string] [size]


默认值:-


上下文:http


定义一个请求状态区域。根据在第二个参数指定的字符串对请求进行分组。


req_status_zone server_addr "$server_addr:$server_port" 256k;
req_status

语法:req_status [zone1] [zone2]


默认值:-


上下文:http、server、location


在该位置启用请求状态。你可以按需求指定多个请求状态区域。


req_status_show

语法:req_status_show on


默认值:-


上下文:location


在当前位置启用请求状态处理程序。


location /req-status {
req_status_show on;
allow 10.0.0.0/8;
allow 127.0.0.1;
deny all;
}

然后你可以访问http:// 127.0.0.1/req-status查看到请求状态信息。


数据

请求状态信息包括以下字段:
- zone_name - 利用req_status_zone定义的分组标准。例如,按照服务器名称对请求进行分组后;
- key - 请求按分组标准分组后的分组标识(即组名)。例如按服务器名称分组时,组名可能是192.168.1.12;
- max_active - 该组的最大并发连接数;
- max_bw - 该组的最大带宽;
- traffic - 该组的总流量;
- requests - 该组的总请求数;
- active - 该组当前的并发连接数;
- bandwidth - 该组当前带宽。


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台