cheng029 发表于 2016-3-7 08:32:20

nginx(三)status状态页面的相关信息及配置,以及nginx的访问控制配置

前言:

作为一个站长,了解本站实时的状态信息也是维护网站的重要信息之一,同时也能通过一些监控工具,例如zabbix对状态页面进行监控,从而取到实时的状态信息;


**ngx_http_stub_ststus__module模块配置**
stub_status;通过指定的uri输出stub status;


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {
       listen 443 ssl;
       listen 172.16.61.4:80;
       server_name www.tz.com;
       root /data/www/vhost1;
       ssl_certificate /etc/nginx/ssl/nginx.crt;
       ssl_certificate_key /etc/nginx/ssl/nginx.key;
       ssl_session_cache shared:SSL:1m;
       ssl_session_timeout 5m;
       ssl_ciphers HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers on;

       if ($scheme = http) {
         return 301 https://$server_name$request_uri;
       }
       location /status {
         stub_status on;    #打开访问状态页面
       }
}






status页面指标意义:
Active connections:当前活动的客户端连接数;
accepts:已经接受的客户端连接总数量;
handled:已经处理过的客户端连接总数量;
requests:客户端总的请求数;
Reading:正在读取的客户端请求的数量;
Writing:正向其发送响应报文的连接数量;
Waiting:等待其发出请求的空闲连接数量;

注:定义完status页面后显然不能将其开放至所有用户可见,至此我们需要对它进行访问控制;可以基于ip访问进行控制,也可以基于basic认证进行访问控制;

**ngx_http_access_module模块的配置(基于IP的访问控制)**

allow ADDRESS|CIDR|unix:|all;允许哪些ip地址进行访问;
deny ADDRESS|CIDR|unix:|all;拒绝哪些ip地址进行访问;

1
2
3
4
5
location /status {
      stub_status on;
      allow 172.16.61.4;    #我们只将该页面限制在本地ip地址可以访问
      deny all;
}





**ngx_http_auth_basic_module模块的配置(basic认证)**
auth_basic string|off;使用http basic认证协议对用户进行认证;
auth_basic_user_file file;实现用户的账帐号文件;

1
2
3
4
5
6
7
8
9
10
11
# htpasswd -c -d pass_file tz    #生成账户文件,需要放置到nginx的conf.d目录下
New password:
Re-type new password:
Warning: Password truncated to 8 characters by CRYPT algorithm.
Adding password for user tz

location /status {             #修改配置文件ststus页面认证方式
                stub_statuson;
                auth_basic      "StatusArea";   #认证界面提示符
                auth_basic_user_filepass_file;
      }







页: [1]
查看完整版本: nginx(三)status状态页面的相关信息及配置,以及nginx的访问控制配置