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编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

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

功能快捷键

撤销: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 block
var foo = 'bar';

生成一个适合你的列表

  • 项目

    • 项目

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

创建一个表格

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

项目 Value
电脑 $1600
手机 $12
导管 $1

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

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

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

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion 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.

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

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

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

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

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

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

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

导入

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


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

nginx中限制IP同一时间段的访问次数相关推荐

  1. php限制ip访问次数 并发_[转]nginx限制某个IP同一时间段的访问次数

    如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见 ...

  2. nginx限制某个IP同一时间段的访问次数

    参考:http://www.nginx.cn/446.html

  3. PHP结合Redis来限制用户或者IP某个时间段内访问的次数

    $redis = new Redis(); $redis->connect('127.0.0.1', 6379); //获取客户端真实ip地址 function get_real_ip(){ s ...

  4. 限制同一IP一段时间内访问次数

    此方式简单粗暴- 项目中有个发邮件功能,是网站暴露给用户的一个反馈意见的邮件入口,由于省事未使用redis或漏斗或平滑限流.只是个简单粗暴的限流,根据实际情况使用. private CopyOnWri ...

  5. php限制ip访问次数 并发_nginx限制ip请求次数 以及并发次数

    如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见 ...

  6. springboot记录用户访问次数_SpringBoot中自定义注解实现控制器访问次数限制示例...

    今天给大伙介绍一下SpringBoot中如何自定义注解实现控制器访问次数限制. 在Web中最经常发生的就是利用恶性URL访问刷爆服务器之类的攻击,今天我就给大伙介绍一下如何利用自定义注解实现这类攻击的 ...

  7. Python修改私有变量、统计访问次数、华摄氏度转换

    Python笔记Day7 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中, 实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问, ...

  8. NGINX中如何根据客户端IP地址控制访问

    NGINX Web 服务器安全加固有多种方法,其中一种是基于 IP 地址的访问控制.本指南解释了如何通过在 NGINX 中基于客户端的 IP 地址控制访问来保护 Web 应用程序. NGINX中基于客 ...

  9. python读取日志统计ip_使用python脚本实现统计日志文件中的ip访问次数

    使用python脚本实现统计日志文件中的ip访问次数,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下 适用的日志格式: 106.45.185.214 - - [06/Aug/2014: ...

最新文章

  1. XML转JSON的javascript代码
  2. linux 在文本模式下(命令模式)下,中文是乱码,如何解决?
  3. win7磁盘清理_window7越来越卡?系统残余文件太多,磁盘清理可以搞定!!
  4. 利用宝塔linux面板+苹果CMS搭建电影网站(二)网站的配置+电影资源的爬取上传
  5. python爬取网易云音乐问题陈述_python 网易云音乐 评论爬取问题
  6. P6348-[PA2011]Journeys【线段树优化建图,最短路】
  7. miui android 版本下载安装,MIUI12.2.2.0稳定版安装包
  8. C语言程序设计赵山林高媛,C语言程序设计(工业和信息化普通高等教育“十二五”规划教材立项项目)(赵山林高媛)资料.doc...
  9. I2S时序及音频驱动
  10. Unity3d FingerGestures
  11. 应用宝shangjia安全评估报告_《安全评估报告》提交指引
  12. iphone相册储存空间已满_苹果iPhone手机存储空间满了怎么办以及解决方法
  13. i2c-test工具说明文档
  14. python的标识库和第三方库_Python 标准库、第三方库
  15. 问卷调查有哪些作用?
  16. python实现docx的批注(comments)插入
  17. 6个大厂Offer,牛逼!
  18. uni-app,一段文字实现展开、收起全文点点点
  19. 神州鲲泰系列产品首发 神州数码携手华为共创产业生态
  20. 怎么用计算机唱歌 百度网盘,【唱歌教程】唱歌技巧和发声方法初学者唱歌 百度云...

热门文章

  1. Windows核心编程_HOOK(续)_APIHOOK
  2. i5 3470+XSB75M-PK+HD 7750安装黑苹果macOS Big Sur 11.7.7
  3. python的元类与类继承的区别
  4. mysql查询未提交事务_MySQL如何找出未提交事务信息
  5. 如何使用fiddler过滤请求
  6. AMD CPU 型号
  7. 【文献阅读】用于zero-shot识别的双曲视觉嵌入学习网络(S. Liu等人,CVPR,2020)
  8. Techwiz LCD 1D的TN模式光学分析
  9. 架构思维成长系列教程(十四)- 不想当架构师的程序员不是好程序员
  10. 3.3.7 差动减法电路