1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > nginx中限制IP同一时间段的访问次数

nginx中限制IP同一时间段的访问次数

时间:2020-10-27 22:36:48

相关推荐

nginx中限制IP同一时间段的访问次数

nginx中限制IP同一时间段的访问次数

如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge

Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,

造成对方服务器资源耗尽,一直到宕机崩溃。

cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一时间段的访问次数来防cc攻击。

HttpLimitReqModul用来限制连单位时间内连接数的模块,使用limit_req_zone和limit_req指令配合使用来达到限制。一旦并发连接超过指定数量,就会返回503错误。

HttpLimitConnModul用来限制单个ip的并发连接数,使用limit_zone和limit_conn指令

这两个模块的区别前一个是对一段时间内的连接数限制,后者是对同一时刻的连接数限制

HttpLimitReqModul 限制某一段时间内同一ip访问数实例

http{

#定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,#以$binary_remote_addr 为key,限制平均每秒的请求为20个,#1M能存储16000个状态,rete的值必须为整数,#如果限制两秒钟一个请求,可以设置成30r/mlimit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;...server{...location {...#限制每ip每秒不超过20个请求,漏桶数burst为5#brust的意思就是,如果第1秒、2,3,4秒请求为19个,#第5秒的请求为25个是被允许的。#但是如果你第1秒就25个请求,第2秒超过20的请求返回503错误。#nodelay,如果不设置该选项,严格使用平均速率限制请求数,#第1秒25个请求时,5个请求放到第2秒执行,#设置nodelay,25个请求将在第1秒执行。limit_req zone=allips burst=5 nodelay;...}...}...

}

HttpLimitZoneModule 限制并发连接数实例

limit_zone只能定义在http作用域,limit_conn可以定义在http server location作用域

http{

#定义一个名为one的limit_zone,大小10M内存来存储session,#以$binary_remote_addr 为key#nginx 1.18以后用limit_conn_zone替换了limit_conn#且只能放在http作用域limit_conn_zone one $binary_remote_addr 10m; ...server{...location {...limit_conn one 20;#连接数限制#带宽限制,对单个连接限数,如果一个ip两个连接,就是500x2klimit_rate 500k; ...}...}...

}

nginx白名单设置

以上配置会对所有的ip都进行限制,有些时候我们不希望对搜索引擎的蜘蛛或者自己测试ip进行限制,

对于特定的白名单ip我们可以借助geo指令实现。

1.

http{

geo KaTeX parse error: Expected '}', got '#' at position 37: …ult 1; #̲google …

64.4.0.0/18 0;

157.60.0.0/16 0;

157.54.0.0/15 0;

157.56.0.0/14 0;

207.46.0.0/16 0;

207.68.192.0/20 0;

207.68.128.0/18 0;

#yahoo

8.12.144.0/24 0;

66.196.64.0/18 0;

66.228.160.0/19 0;

67.195.0.0/16 0;

74.6.0.0/16 0;

68.142.192.0/18 0;

72.30.0.0/16 0;

209.191.64.0/18 0;

#My IPs

127.0.0.1/32 0;

123.456.0.0/28 0; #example for your server CIDR

}

geo指令定义了一个白名单 l i m i t e d 变 量 , 默 认 值 为 1 , 如 果 客 户 端 i p 在 上 面 的 范 围 内 , limited变量,默认值为1,如果客户端ip在上面的范围内, limited变量,默认值为1,如果客户端ip在上面的范围内,limited的值为0

2.使用map指令映射搜索引擎客户端的ip为空串,如果不是搜索引擎就显示本身真是的ip,这样搜索引擎ip就不能存到limit_req_zone内存session中,所以不会限制搜索引擎的ip访问

map $limited $limit {

1 $binary_remote_addr;

0 “”;

}

3.设置limit_req_zone和limit_req

limit_req_zone $limit zone=foo:1m rate=10r/m;

limit_req zone=foo burst=5;@TOC

欢迎使用Markdown编辑器

你好! 这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

全新的界面设计,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown将代码片显示选择的高亮样式进行展示;增加了图片拖拽功能,你可以将本地的图片直接拖拽到编辑区域直接展示;全新的KaTeX数学公式语法;增加了支持甘特图的mermaid语法1功能;增加了多屏幕编辑Markdown文章功能;增加了焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置等功能,功能按钮位于编辑区域与预览区域中间;增加了检查列表功能。

功能快捷键

撤销:Ctrl/Command+Z

重做:Ctrl/Command+Y

加粗:Ctrl/Command+B

斜体:Ctrl/Command+I

标题:Ctrl/Command+Shift+H

无序列表:Ctrl/Command+Shift+U

有序列表:Ctrl/Command+Shift+O

检查列表:Ctrl/Command+Shift+C

插入代码:Ctrl/Command+Shift+K

插入链接:Ctrl/Command+Shift+L

插入图片:Ctrl/Command+Shift+G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。

输入2次#,并按下space后,将生成2级标题。

以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本强调文本

加粗文本加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片:

带尺寸的图片:

居中的图片:

居中并且带尺寸的图片:

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的代码片.

// An highlighted blockvar foo = 'bar';

生成一个适合你的列表

项目 项目 项目 项目1项目2项目3计划任务完成任务

创建一个表格

一个简单的表格是这么创建的:

设定内容居中、居左、居右

使用:---------:居中

使用:----------居左

使用----------:居右

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

创建一个自定义列表

Markdown Text-to- HTMLconversion tool Authors John Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML。

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞​tz−1e−tdt.

你可以找到更多关于的信息LaTeX数学表达式here.

新的甘特图功能,丰富你的文章

关于甘特图语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

这将产生一个流程图。:

关于Mermaid语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

关于Flowchart流程图语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到文章导出,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,

继续你的创作。

mermaid语法说明 ↩︎

注脚的解释 ↩︎

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。