介紹
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 /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.ttlsa.com/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)
網站:運維生存時間 網址: http://www.ttlsa.com/nginx/nginx-modules-ngx_req_status/
=================================分割線====================================
GITHUB 項目地址 https://github.com/zls0424/ngx_req_status
統計信息頁面. 支持以下參數:
c: 統計信息重置(clean_up) 例如 http://yourname.com/req-status?c
說明:無
l: 數字使用原始格式顯示(long_num) 例如 http://yourname.com/req-status?l
說明:顯示數據以byte 為單位
f: 完整數據(last_traffic,last_traffic_start,last_traffic_update)(full_info) 例如 http://yourname.com/req-status?f
說明:
last_traffic:最近一次訪問已經記錄的流量?
last_traffic_start:最近一次訪問的起始流量?
last_traffic_update:?