• Nginx 访问控制


    Nginx的访问控制

    基于IP的访问控制:http_access_module

    允许那些ip进行访问,不允许那些ip进行访问

    基于用户的信任登陆:http_auth_basic_module

    进行用户的登陆进行认证,需要进行认证才可

    1、http_access_module的配置

    允许访问的配置
    Syntax:  allow address | CIDR(网段)|unix:(socket的访问)|all(允许所有的);
    Default:  -
    Context:  server,location,limit_except

    不允许访问的配置
    Syntax:  deny address | CIDR(网段)|unix:(socket的访问)|all(允许所有的);
    Default:  -
    Context:  server,location,limit_except

    测试:
    ~^ 进行匹配路径认证

    此时使用已禁止的ip进行访问

    启用其他ip地址进行测试

    这个设置是有优先级的
    先执行前面的在执行后面的

    局限性

    1、只能通过 $remote_adde 控制信任

    访问不是客户端和服务端连接
    通过代理连接(中间)
    Nginx的ip基于remote_addr进行识别IP的
    此时对ip1做出的限制是没有进行成功的限制的
    此时做的只是对中间的代理做出的限制

    2、http_x_forwarded_for

    http常用的一个变量

    3、http_x_forwarded_for

    http_x_forwarded_for = Client IP,Proxy(1) IP ,Proxy(2)IP,...

    4、http_access_module 局限性

    方法1:
    采用别的http头信息控制访问 如:http_x_forward_for
    方法2:
    结合geo模块
    方法3:
    通过http自定义变量传递

    2、http_auth_basic_module

    用户登陆认证的模块

    syntax:   auth_basic string | off;
    default:   auth_basic off
    context:   server.loction.limit_except
    进行配置用户相关的登陆设置

    sytax:  auth_basic_user_file file;
    default:  -
    context:  server,location,limit_except


    进行对上述的引入

    配置配置文件
    此时使用的用户名是mrchengs
    密码:123456

    相关创建性的步骤

     

    配置文件的修改

    进行登陆测试

    账户mechengs 密码123456

    局限性

    1、用户信息依赖文件方式
    2、操作管理机械,效率低下

    解决方式

    1、Nginx结合LUA实现高效验证
    2、Nginx和LDAP打通,利用nginx-auth-ldap模块

  • 相关阅读:
    mysql插入中文数据变成问号怎么处理
    项目第二阶段
    项目第一阶段
    项目测试
    常用mysql操作
    常用的mysql操作
    mysql操作
    土地档案管理系统需求分析
    土地档案管理系统架构图,ER图,用例图
    Load data local infile
  • 原文地址:https://www.cnblogs.com/Mrchengs/p/11938263.html
Copyright © 2020-2023  润新知