Nginx的访问控制

基于IP的访问控制-http_access_module

允许  

  语法 allow address | CIDR | unix: | all

  区域 http,server,location,limit_except

不允许

  区域 deny address | CIDR | unix: | all

  语法 http,server,location,limit_except

开始测试  

  测试deny  

  1.配置access_mod.conf

      

    2.重启配置,使用本机访问时将会出现403错误说明已经成功

  测试allow

    测试步骤和上面相似,结果相反

该方法的局限性

  原理是判断IP,如果不是客户端直接访问服务端,而是使用代理那么就失效了,解决这个问题要用到http_x_forwarded_for变量

    区别$remote_addr只记录当前访问IP,并不记录代理IP,而x_forwarded_for会记录连接时IP,以及代理IP

    但是x_forwarded_for也会被修改

      

    以后再演示

基于用户的信任登录-http_auth_basic_module

  该功能主要用于当某个用户需要访问加密页面时需要输入密码

  1. 

    语法 auth_basic string | off

    区域:http,server,location,limit_except

  2.

    语法 auth_basic_user_file file 存储密码和用户名的文件

    区域:http,server,location,limit_except 

    密码格式

       name1:passwd1

       加密格式有多种,使用自带htpasswd加密即可

开始测试

  1.使用htpasswd给密码加密

    

  2.配置Nginx的conf文件

    

  此时登录网站就会要求输入密码

    

该方法的局限性

  用户的信息依赖文件方式

    操作管理机械,效率低下,如果有多种用户体系就会很难管理

解决办法有两个,后面会讲到

  

posted @ 2018-01-06 17:40  爱编程的男孩  阅读(95)  评论(0编辑  收藏  举报