Nginx配置统计页面及访问控制(基于htpasswd和客户端IP)

一、启用HTTP_STUB_STATUS状态统计模块

  • 配置编译参数时候要添加–with-http_stub_status_module

  • nginx-V查看已安装的Nginx是否包含HTTP_STUB_STATUS模块

  • 配置步骤

1、上传软件包到服务器/opt目录下,解压缩安装包

[root@localhost opt]# tar zxvf nginx-1.12.2.tar.gz

2、安装服务所必须依赖的软件包

[root@localhost opt]# yum -y install gcc gcc-c++ zlib-devel pcre pcre-devel

3、进入nginx软件目录进行编译安装前配置

[root@localhost opt]# cd nginx-1.12.2/     ## 进入软件目录

执行以下命令进行配置:

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

4、编译、安装

[root@localhost nginx-1.12.2]# make && make install

5、创建nginx程序用户

[root@localhost nginx-1.12.2]# useradd -M -s /sbin/nologin nginx

6、建立软链接,使nginx中的命令为系统所管理

扫描二维码关注公众号,回复: 11611777 查看本文章
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/

7、修改nginx配置文件

[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf   ## 编辑配置文件

添加如下内容:

location /status {
           stub_status on;
           access_log off;
        }

axk9Nq.md.png

8、开启nginx服务

[root@localhost nginx-1.12.2]# nginx 

9、在浏览器中输入地址进行访问统计页面

http://192.168.50.134/status     ## IP地址根据实际情况进行替换

axFzHs.png

每访问(或刷新)一次页面,计数器就会加一

二、基于授权的访问控制

  • 原理跟Apache的访问控制配置类似,这里就不再赘述,下面直接开始配置:

1、安装http服务(因为生成认证文件需要用到http服务中的htpasswd工具)

[root@localhost nginx-1.12.2]# yum -y install httpd

2、使用htpasswd工具创建认证文件

[root@localhost nginx-1.12.2]# htpasswd -c /usr/local/nginx/passwd admin  ## 创建认证文件,用户名为admin,创建路径为/usr/local/nginx,文件名为passwd
New password:     ## 输入密码
Re-type new password:     ## 确认密码
Adding password for user admin    ## 密码创建成功

3、修改认证文件的属主

[root@localhost nginx-1.12.2]# chown nginx /usr/local/nginx/passwd

4、修改认证文件权限

[root@localhost nginx-1.12.2]# chmod 400 /usr/local/nginx/passwd

5、编辑nginx配置文件

[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf

## 在虚拟主机的location字段中添加如下两行:

auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd;

axFvuQ.jpg

6、打开浏览器,清除缓存并重启,输入192.168.50.134进行访问
axFxBj.md.jpg

只要输入之前用htpasswd工具生成的用户名和密码就可以登录正常访问页面了

三、基于客户端IP实现访问控制

1、修改nginx配置文件,在虚拟主机中添加拒绝地址名单

[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf   ## 编辑配置文件

server {
       server_name 192.168.50.134;
       location / {
       deny 192.168.50.136;      ## 拒绝IP地址为192.168.50.136地址的主机访问
       allow all;                ## 允许其他所有主机访问
       root /var/www/test;
       index index.html index.php;
       }
    }

axFXjg.jpg

2、重启nginx服务

[root@localhost conf]# systemctl restart nginx

3、使用客户机(IP:192.168.50.136)进行访问,打开浏览器,清空缓存后重启,访问192.168.50.134
axkiCV.md.jpg
从看出已经不能访问了

猜你喜欢

转载自blog.csdn.net/u014042047/article/details/107965560