首页 » Nginx » 【Nginx】模块介绍-ngx_req_status_module

【Nginx】模块介绍-ngx_req_status_module

原文 http://blog.csdn.net/weixin_38762114/article/details/79174621

2018-01-27 02:01:36阅读(174)

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.1u  22 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_name       key     max_active      max_bw  traffic requests        active  bandwidth
imgstore_appid  43    27      6M      63G     374063  0        0
imgstore_appid  53    329     87M     2058G   7870529 50      25M
server_addr     10.128.1.17     2        8968   24M     1849    0        0
server_addr     127.0.0.1       1       6M      5G      912     1        0
server_addr     180.96.x.1   3358    934M    27550G  141277391       891     356M
server_addr     180.96.x.2   78      45M     220G    400704  0        0
server_addr     180.96.x.3   242     58M     646G    2990547 42      7M
server_name     d.123.sogou.com 478     115M    2850G   30218726        115     39M
server_name     dl.pinyin.sogou.com     913     312M    8930G   35345453        225     97M
server_name     download.ie.sogou.com   964     275M    7462G   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 - 该组当前带宽。

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹