1. 程式人生 > 實用技巧 >九、stub_status模組功能及第三方echo模組的載入

九、stub_status模組功能及第三方echo模組的載入

ngx_http_stub_status_module模組功能

主要功能是記錄Nginx的基本訪問狀態資訊,讓使用者瞭解Nginx的工作狀態,例如連線數等資訊。要使用狀態模組,在編譯Nginx時必須增加http_stub_status_module模組來支援。

1、檢視該模組是否安裝

[root@inode3 ~]# nginx -V
nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: 
--prefix=/usr/local/nginx \ --user=www --group=www \ --with-http_ssl_module \ --with-http_stub_status_module

2、配置nginx status

生成status配置

vim /usr/local/nginx/conf/vhost/ip.conf

server {
  listen  80;
  server_name 192.168.32.101;
  location / {
      root   html/ip;
      index  index.html index.htm;
  }
  location 
=/status { stub_status on; } }

3、重新載入nginx配置檔案

nginx -t
nginx -s reload

4、訪問status頁面

[root@inode3 vhost]# curl 192.168.32.103/status
Active connections: 1 
server accepts handled requests
19 19 21 
Reading: 0 Writing: 1 Waiting: 0 

頁面資訊說明

Active connections: 1   #nginx正在處理的活動連線數 1個
server :表示Nginx啟動到現在共處理了19個連線;
accepts:表示Nginx啟動到現在共成功建立了19次握手;
handled requests:表示總共處理了21次請求;

Reading為Nginx讀取到客戶端的Header資訊數。
Writing為Nginx返回給客戶端的Header資訊數。
Waiting為Nginx已經處理完正在等候下一次請求指令的駐留連線。在開啟keep
-alive的情況下,這個值等於active-(reading+writing)

二、新增nginx模組

給nginx新增ngx_http_gunzip_module模組

檢視現在nginx的編譯引數中沒有該模組的

[root@inode3 ~]# nginx -V
nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx \
 --user=www \
 --group=www \
 --with-http_ssl_module 
 --with-http_stub_status_module

新增模組步驟:

第一步:

下載相同版本的nginx原始碼包並解壓進入
cd /server/tools
wget -c http://nginx.org/download/nginx-1.16.0.tar.gz
tar -xf nginx-1.16.0.tar.gz
cd nginx-1.16.0

第二步:原始碼編譯安裝,在編譯時新增ngx_http_gunzip_module模組

./configure --prefix=/usr/local/nginx --user=www --group=www \
            --with-http_ssl_module --with-http_stub_status_module \
            --with-http_gunzip_module
make
#注意不要make install

第三步:備份源nginx的命令檔案

cd /usr/local/nginx/sbin
mv nginx nginx.old

第四步:拷貝新編譯好的nginx命令檔案到/usr/local/nginx/sbin目錄

cd /server/tools/nginx-1.16.0/objs
cp nginx /usr/local/nginx/sbin

第五步:重新載入nginx配置檔案

nginx -s reload

第六步:檢視編譯模組資訊

[root@inode3 sbin]# nginx -V
nginx version: nginx/1.16.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx \
 --user=www --group=www --with-http_ssl_module \
 --with-http_stub_status_module --with-http_gunzip_module

三、新增第三方模組

新增第三方模組的方式與新增nginx模組的方式一樣,不同的地址在使用"-add-module=模組絕對路徑",在configure編譯時新增即可。

./configure --prefix=/usr/local/nginx --user=www --group=www \
            --with-http_ssl_module --with-http_stub_status_module \
            --with-http_gunzip_module -add-module=模組的絕對路徑

新增第三方echo模組

./configure \
--prefix=/apps/nginx \
--user=nginx --group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_perl_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module \
--add-module=/usr/local/src/echo-nginx-module #echo模組的路徑
make && make install