基于IP的访问控制:http_access_module

不允许指定网段的用户访问:
配置语法:deny address | CIDR | unix: | all;
默认状态:-
配置方法:http、server、location、limit_except

把最原始的配置文件做好备份,并复制一份在这里,命名为:access_mod.cof

检查语法并重载
nginx -tc /etc/nginx/nginx.conf
nginx -s reload -c /etc/nginx/nginx.conf

访问到之前放在里面的页面,说明配置成功

要参与测试的ip:

复制一个location进行配置

检查语法并重载

访问

换虚拟机访问

只允许指定网段的用户可以访问:
配置语法:allow address | CIDR | unix: | all;
默认状态:-
配置方法:http、server、location、limit_except

复制一个location进行配置

检查配置是否成功,并重载

设置的ip访问成功

未设置的ip访问失败

http_access_module的局限性:

由于此实现的原理是基于客户端的ip来控制,但是nginx并不知道哪一个ip是真正的客户的,如果客户端与服务端的nginx之间还有一层代理(如其他的中间件),如对下图的中对IP1访问IP3做控制,此时IP1经过中间件后,放IP3发送的请求为IP2,即控制失败,所以只能通过$remote_addr控制允许访问,不能控制拒绝访问

解决办法:

方法一:采用别的HTTP头信息控制访问,如:HTTP_X_FORWARD_FOR

方法二:结合geo模块作

方法三:通过HTTP自定义变量传递(推荐此方法)

http_x_forwarded_for:

http_x_forwarded_for是http头信息协议规定要携带的内容,在IP2上面看到的是IP1的http_x_forwarded_for信息,在IP3上看到的是IP1,IP2的http_x_forwarded_for信息,所以http_x_forwarded_for可以看到通过所有代理的信 

配置语法:http_x_forwarded_for=Client IP ,Proxy(1),Proxy(2)IP,...

基于用户的信任登录:http_auth_basic_module

配置语法:auth_basic string | off;
string:即表示开启,有会在前端显示这个字符串的信息,有也可以作为前端的登录提示
默认状态:auth_basic off;
配置方法:http、server、location、limit_except

配置语法:auth_basic_user_file filePath;
filePath:用来存储用户认证信息的文件
默认状态:-;
配置方法:http、server、location、limit_except

官方文档:http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

如果没有的话需安装,我这里已经安装了

做好备份,并把配置文件命名为auth_mod.conf

在上一级目录,用htpasswd命令生成一个名为./auth_conf的文件,并写入一个用户名和密码,我这里设置的是admin,密码111111

开始配置

检查语法并重载

访问,需输入用户名密码

http_auth_basic_module 的局限性

一:用户信息依赖文件方式

二:操作机械,效率低下

解决方案:

一:Nginx结合LUA实现高效验证

二:Nginx和LDAP打通,利用nginx-auth-ldap模块

Nginx详解九:Nginx基础篇之Nginx的访问控制的更多相关文章

  1. 详解递归(基础篇)———函数栈、阶乘、Fibonacci数列

    一.递归的基本概念 递归函数:在定义的时候,自己调用了自己的函数. 注意:递归函数定义的时候一定要明确结束这个函数的条件! 二.函数栈 栈:一种数据结构,它仅允许栈顶进,栈顶出,先进后出,后进先出.我 ...

  2. Web服务器之Nginx详解(理论部分)

    大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O ...

  3. 【转】Web服务器之Nginx详解(理论部分)

    大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O ...

  4. (转)windows 下安装配置 Nginx 详解

    windows 下安装配置 Nginx 详解 本文转自https://blog.csdn.net/kingscoming/article/details/79042874 nginx功能之一可以启动一 ...

  5. 详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud

    转载地址:https://www.jb51.net/article/109382.htm 这篇文章主要介绍了详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud,会通过 N ...

  6. 2.高并发教程-基础篇-之nginx+mysql实现负载均衡和读写分离

    技巧提示:mysql读写分离搭建好之后,配合nginx的负载均衡,可以高效的mysql的集群性能,同时免去麻烦的query分流.比如,sever1收到的请求就专门链接slave1从mysql读取数据, ...

  7. JAVASCRIPT事件详解-------原生事件基础....

    javaScirpt事件详解-原生事件基础(一)   事件 JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间,通过监听特定事件的发生,你能 ...

  8. 【three.js详解之一】入门篇

    [three.js详解之一]入门篇   开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的 ...

  9. 磁盘分区对齐详解与配置 – Linux篇

    在之前一篇<磁盘分区对齐详解与配置 – Windows篇>中,我介绍了磁盘分区对齐的作用和适用于MBR和GPT的两种磁盘类型的配置,以及Windows平台设置磁盘分区对齐的方法. 本文作为 ...

随机推荐

  1. eclipse使用异常An error has occurred.see error log for more details eclipse

    eclipse使用异常An error has occurred.see error log for more details eclipse 解决Eclipse,MyEclipse出现An erro ...

  2. docker remote api 的安全隐患

    开启docker的api,首先要知道docker的守护进程daemon,在下认为daemon作为Client和service连接的一个桥梁,负责代替将client的请求传递给service端. 默认情 ...

  3. 关于xss攻击学习的总结

    关于xss攻击,网上相关的介绍很多,一搜索也是一大堆,这里我就对自己感兴趣的一些内容做个总结. xss简单介绍 成因:xss是将恶意代码(多是JavaScript)插入html代码中. 分类: 1. ...

  4. UVA315 Network 连通图割点

    题目大意:有向图求割点 题目思路: 一个点u为割点时当且仅当满足两个两个条件之一: 1.该点为根节点且至少有两个子节点 2.u不为树根,且满足存在(u,v)为树枝边(或称 父子边,即u为v在搜索树中的 ...

  5. ajax传递数组,后台更新

    js: var rows = $("#stu_reg_table").datagrid("getSelections"); if(rows != "& ...

  6. const关键字的作用

    1.防止被修饰的成员的内容被改变. 2.修饰类的成员函数时,表示其为一个常函数,意味着成员函数将不能修改类成员变量的值. 3.在函数声明时修饰参数,表示在函数访问时参数(包括指针和实参)的值不会发生变 ...

  7. linux查看日志

    若想在linux下查询某个时间段的log,用sed命令示例如下: $ sed -n '/2017-11-11 11:00:00/,/2017-11-11 11:11:11/p'  error.log ...

  8. go 多维度 Map 的数据存取

    多维度 Map 的数据存取 一维情况下的 map 做存取很简单,而二维以上的情况就得小心了. 先来看一个例子: m:=make(map[string]map[string]int)   c:=make ...

  9. 肺结节CT影像特征提取(一)——肺结节CT图像特征概要

    本科毕设做的是医学CT图像特征提取方法研究,主要是肺部CT图像的特征提取.由于医学图像基本为灰度图像,因此我将特征主要分为三类:纹理特征,形态特征以及代数特征,每种特征都有对应的算法进行特征提取. 如 ...

  10. 【转】MySQL用户管理及SQL语句详解

    [转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysq ...