Linux系统架构-----Nginx的访问控制

一.Nginx基于授权的访问控制概述

  • Nginx与Apache一样,可以实现基于用户权限的访问控制,当客户端想要访问相应的网站或者目录时,要求用户输入用户名和密码,才能正常访问
  • 配置步骤生成用户密码认证文件 ;修改主配置文件相对应的目录,添加认证配置项;重启服务,访问测试

二.Nginx基于授权的访问控制操作

  • 安装nginx
  • 获得安装包
yum install vsftpd -y      //安装ftp服务

systemctl start vsftpd      //开启ftp服务

wget http://nginx.org/download/nginx-1.17.6.tar.gz   //使用wget工具从官网上下载nginx压缩包
  • 解压,安装环境
tar zxvf nginx-1.17.6.tar.gz
yum install gcc gcc-c++ pcre* zlib-devel make -y
  • 创建用户,不建立宿主文件,且不能再shell上登录
useradd -M -s /sbin/nologin nginx
  • 配置,安装且编译
cd nginx-1.17.6/

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
#nigix运行的用户和组都为nginx
#启用http_stub_status_module模块以支持状态统计,便于查看服务器的连接信息

make && make install
  • 建立执行程序的软链接
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
  • 优化nginx服务控制
vim /etc/init.d/nginx

#!/bin/bash
# chkconfig: -99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"                  //nginx主程序
PIDF="/usr/local/nginx/logs/nginx.pid"              //nginx的PID号
case "$1" in
        start)
                $PROG
                ;;
        stop)
                kill -s QUIT $(cat $PIDF)
                ;;
        restart)
                $0 stop
                $0 start
                ;;
        reload)
                kill -s HUP $(cat $PIDF)
                ;;
        *)
                echo "Usage: $0 {start|stop|restart|reload}"
        exit 1
esac
exit 0
#添加执行权限
chmod +x /etc/init.d/nginx
#添加为系统服务
chkconfig --add nginx 
  • 关闭防火墙,开启服务
service nginx start
systemctl stop firewalld
setenforce 0
  • 验证Ningx服务

  • 使用htpasswd生成用户认证文件
#安装htpasswd工具
yum install httpd-tools -y
#创建用户
htpasswd -c /usr/local/nginx/passwd.db stu
#修改密码权限文件
chmod 400 /usr/local/nginx/passwd.db
#修改所有者为chown nginx /usr/local/nginx/passwd.db
#查看密码文件
[root@192 ~]# cat /usr/local/nginx/passwd.db 
stu:$apr1$0FAY6w6o$DNF5ARlGMq4mTJByjFfNL/
  • 修改主配置文件,添加相应的认证配置项
#进入主配置文件
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;
        }
  • 重启服务
service nginx restart
  • 验证基于授权的访问控制

三.Nginx基于客户端的访问控制概述

  • 基于客户端的访问控制是通过客户端的IP地址,决定是否允许对页面访问
  • Nginx基于客户端的访问控制要比Apache简单

规则如下:

  • deny IP/IP段:拒绝某个IP或者网段的客户端访问
  • allowIP/IP段:允许某个IP或者网段的客户端访问
  • 规则从上往下执行,如匹配则停止,不再往下匹配

四.Nginx基于客户端的访问控的实际操作

  • 修改主配置文件
[root@192 ~]# vim /usr/local/nginx/conf/nginx.con
        location / {
           # auth_basic "secret";        
           # auth_basic_user_file /usr/local/nginx/passwd.db;
           deny 192.168.43.140;          //禁止43.140访问
           allow all;
            root   html;
            index  index.html index.htm;
        }
  • 重启服务
service nginx restart
  • 测试

发布了94 篇原创文章 · 获赞 108 · 访问量 6401

猜你喜欢

转载自blog.csdn.net/qq_42761527/article/details/103622696