Nginx详解九:Nginx基础篇之Nginx的访问控制
基于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的访问控制的更多相关文章
- 详解递归(基础篇)———函数栈、阶乘、Fibonacci数列
一.递归的基本概念 递归函数:在定义的时候,自己调用了自己的函数. 注意:递归函数定义的时候一定要明确结束这个函数的条件! 二.函数栈 栈:一种数据结构,它仅允许栈顶进,栈顶出,先进后出,后进先出.我 ...
- Web服务器之Nginx详解(理论部分)
大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O ...
- 【转】Web服务器之Nginx详解(理论部分)
大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O ...
- (转)windows 下安装配置 Nginx 详解
windows 下安装配置 Nginx 详解 本文转自https://blog.csdn.net/kingscoming/article/details/79042874 nginx功能之一可以启动一 ...
- 详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud
转载地址:https://www.jb51.net/article/109382.htm 这篇文章主要介绍了详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud,会通过 N ...
- 2.高并发教程-基础篇-之nginx+mysql实现负载均衡和读写分离
技巧提示:mysql读写分离搭建好之后,配合nginx的负载均衡,可以高效的mysql的集群性能,同时免去麻烦的query分流.比如,sever1收到的请求就专门链接slave1从mysql读取数据, ...
- JAVASCRIPT事件详解-------原生事件基础....
javaScirpt事件详解-原生事件基础(一) 事件 JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间,通过监听特定事件的发生,你能 ...
- 【three.js详解之一】入门篇
[three.js详解之一]入门篇 开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的 ...
- 磁盘分区对齐详解与配置 – Linux篇
在之前一篇<磁盘分区对齐详解与配置 – Windows篇>中,我介绍了磁盘分区对齐的作用和适用于MBR和GPT的两种磁盘类型的配置,以及Windows平台设置磁盘分区对齐的方法. 本文作为 ...
随机推荐
- 【blog】使用highlight.js高亮你的代码
我的代码 <!--代码高亮插件--> <link rel="stylesheet" type="text/css" href="/w ...
- mysql 原理~ FTWRDL
FTWRL 锁与MDL一 简介:今天来聊聊为什么备份会卡住,申请不到全局FTWRL二 FTWRL 1 FTWRL主要包括3个步骤: 1.上全局读锁(lock_global_read_lo ...
- JAVA百度过的异常(1)
1.---无法解析类型 javax.servlet.http.HttpServletRequest.从必需的 .class 文件间接引用了它 The type javax.servlet.http.H ...
- (5)Java数据结构--有继承图,用途分析
java 中几种常用数据结构 - u010947402的博客 - CSDN博客http://blog.csdn.net/u010947402/article/details/51878166 JAVA ...
- Python问题:'Nonetype' object is not iterable
参考链接:http://blog.csdn.net/dataspark/article/details/9953225 [解析] 这个错误提示一般发生在将None赋给多个值时. [案例] 定义了如下的 ...
- sql总结-----数据表操作
数据表概述 表示一种最常见的组织数据的方式,一张表一般有多个列(即多个字段). oracle提供了多种内置的列的数据类型,常用的有以下五种: 1.字符类型 字符数据类型用于声明包含字母.数字数据的字段 ...
- CF1108F MST Unification
题目地址:CF1108F MST Unification 最小生成树kruskal算法的应用 只需要在算法上改一点点 当扫描到权值为 \(val\) 的边时,我们将所有权值为 \(val\) 的边分为 ...
- C/C++经典面试题一
1.变量的声明和定义有什么区别? 常量:在程序执行过程中,不会发生改变的量,不能被改变的量 变量:在程序执行过程中,可以被改变的量 定义变量的方式:数据类型 变量名 = 常量: int num = 1 ...
- 游记-NOIP2018
Day -3 受蛊惑跑到理工大去试机,意外发现home里的noilinux账户下有个压缩包,而且还试对了密码,怀着 激动 紧张的心情,打开来看,里面写着 (写出来我就会被禁赛了): asdfasdra ...
- FHQ Treap摘要
原理 以随机数维护平衡,使树高期望为logn级别 不依靠旋转,只有两个核心操作merge(合并)和split(拆分) 因此可持久化 先介绍变量 ; int n; struct Node { int v ...