前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx 限制IP并发数

Nginx 限制IP并发数

作者头像
dys
发布2018-04-03 14:40:16
3.6K0
发布2018-04-03 14:40:16
举报
文章被收录于专栏:性能与架构性能与架构

前几天介绍了CC攻击及其防护方法,其中有一个方法是限制同一个IP的并发请求数量,以防止来自同一IP的大量高并发攻击

我的服务器一直没有配置这个限制,今天实验了一下,下面是配置过程

配置

示例

limit_conn addr 2; 表示限制并发数量最高为2 这个数字可以根据自己实际情况设置

测试

写了一个测试用的 a.php 在另一台服务器用ab命令测试并发效果 # ab -c 5 -t 10 http://192.2.4.31/a.php 这里指定并发数为5,大于上面配置的最高限制 回到nginx服务器查看访问日志 # tail -f access.log

可以看到很多请求的返回状态为503

增加 limit_conn addr 的值为10,再次用ab测试

会看到返回状态都为200了,说明配置生效

配置说明

其中有两个关键指令的定义 (1)limit_conn_zone limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn_zone 指令用来定义会话状态存储区域 $binary_remote_addr 表示以客户端的IP作为键 zone=addr:10m 表示分配一个名为 'addr' 的区域,空间大小为 10M 相当于这个区域记录了IP的会话状态信息 (2)limit_conn limit_conn 指令用来限制并发连接数 limit_conn addr 2; 表示到名为 'addr' 这个区域中检索IP键,不允许有超过2个的会话状态,超过的话会返回503 通过这两项配置,就可以实现IP并发限制

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档