部署Nginx网站服务实现访问状态统计以及访问控制(2)

Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的Web访问情况。要使用Nginx的状态统计功能,除了启用内建模块以外,还需要修改nginx.conf配置文件,指定访问位置并添加stub_status配置代码。

[root@centos7-1 nginx-1.12.0]# cd /usr/local/nginx/conf [root@centos7-1 conf]# mv nginx.conf nginx.conf.back [root@centos7-1 conf]# grep -v "#" nginx.conf.back > nginx.conf //过滤配置文件#号注释的信息

[root@centos7-1 conf]# vim nginx.conf server { listen 80; server_name localhost; charset utf-8; location / { root html; index index.html index.htm; } //"server"这里插入的这4行的信息 location ~ /status { //访问位置为/status stub_status on; //打开状态统计功能 access_log off; //关闭此位置的日志记录 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }

新的配置生效后,在浏览器中访问nginx服务器的/status网站位置,可以看到当前的状态统计信息。

systemctl reload nginx.service //重新加载nginx服务 systemctl stop firewalld.service //关闭防火墙 systemctl disable firewalld.service //禁用防火墙

部署Nginx网站服务实现访问状态统计以及访问控制功能


其中,“Active connections”表示当前的活动连接数;而“server accepts handled requests”表示已经处理的连接信息。三个数字依次表示已处理的连接数、成功的TCP握手次数、已处理的请求数。

配置Nginx的访问控制 1.基于用户授权的访问控制

(1).使用htpasswd生成用户认证文件,如果没有该命令,可使用yum安装httpd-tools软件包,用法与Apache认证时方式一样,在/usr/local/nginx/目录生成passwd.db文件,用户名是test,密码输入2次。

yum install httpd-tools -y //安装httpd-tools软件包 [root@centos7-1 ~]# htpasswd -c /usr/local/nginx/passwd.db test New password: //设置test用户密码 Re-type new password: Adding password for user test [root@centos7-1 ~]# cat /usr/local/nginx/passwd.db //查看生成的用户认证文件 test:$apr1$WfkC0IdB$sMyjqJzg2tcqcIe1mJ8LI/

(2).修改密码文件的权限为400,将所有者改为nginx,设置nginx的运行用户能够读取。

[root@centos7-1 ~]# chmod 400 /usr/local/nginx/passwd.db [root@centos7-1 ~]# chown nginx /usr/local/nginx/passwd.db [root@centos7-1 ~]# ll -d /usr/local/nginx/passwd.db -r--------. 1 nginx root 43 620 14:45 /usr/local/nginx/passwd.db

(3).修改主配置文件nginx.conf,添加相应认证配置项。

[root@centos7-1 ~]# vim /usr/local/nginx/conf/nginx.conf location / { auth_basic "secret"; //添加认证配置 auth_basic_user_file /usr/local/nginx/passwd.db; root html; index index.html index.htm; }

(4).检测语法、重启服务

[root@centos7-1 ~]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@centos7-1 ~]# systemctl restart nginx.service

(5).用浏览器访问网址,检验控制效果。

部署Nginx网站服务实现访问状态统计以及访问控制功能


需要输入用户名和密码进行访问,验证通过才能进行访问。

部署Nginx网站服务实现访问状态统计以及访问控制功能

2.基于客户端的访问控制

Nginx基于客户端的访问控制要比Apache的简单,规则如下:

deny IP/IP段:拒绝某个IP或IP段的客户端访问

allow IP/IP段:允许某个IP或IP段的客户端访问。

规则从上往下执行,如匹配规则停止,不在往下匹配。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/f95a5938e907628653b9a06cd4058b27.html