永发信息网

Nginx中怎么限制某个IP同一时间段的访问次数

答案:1  悬赏:40  手机版
解决时间 2021-03-26 10:00
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指令
这两个模块的区别前一个是对一段时间内的连接数限制,后者是对同一时刻的连接数限制

文章目录
1 HttpLimitReqModul 限制某一段时间内同一ip访问数实例
2 HttpLimitZoneModule 限制并发连接数实例
3 nginx白名单设置
HttpLimitReqModul 限制某一段时间内同一ip访问数实例
http{
...

#定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,
#以$binary_remote_addr 为key,限制平均每秒的请求为20个,
#1M能存储16000个状态,rete的值必须为整数,
#如果限制两秒钟一个请求,可以设置成30r/m

limit_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;
...
}
...
}
...
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
乡愁运用了什么写作手法
东芝ss rx1和东芝r500哪个好
生物的多样性不包括的是(  ) A.物种
friends的所有格
类似恋战的游戏
去哪里可以找到挖煤的工作
山城区鹤壁万宝厨房电器地址在什么地方,想今
笔记本电脑能耗20.5kwh是什么意思
3.333……的循环节是多少?
问下大家,伞骨做的三门套适合抓鹧鸪吗?
鳞次栉比是什么意思啊?
200乘以10的负3次方再乘以40除以0.96得多少
雄狮与老虎谁厉害
EMS 内网查询 ES961314387CS 为什么4天前发往
大连市开发区港西小学地址在哪,我要去那里办
推荐资讯
顶级网络小说家的地位现在可以和金庸,古龙相
单选题原核细胞与真核细胞相比,一般不具有的
榆树市哪里?是市吗?
求常熟出租房要一室一卫的,价格在五百左右的
杜仲,红花,杜活,卫灵仙,透骨草什么功效
山东威海、淄博、泰安这三个城市哪个最富
我们坐火车t328到绍兴会停在那个站
单选题关于工业企业集聚的原因叙述不正确的是
开眼数据软件到底怎么样
炉石传说奥金尼灵魂祭司+大地之环先知卡组分
博瑞汽车17款什么时候上市有知道的吗
解这道题的方程怎么解2(x-2.6)=8
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?