Nginx 限制IP并发数

前几天介绍了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并发限制

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2016-01-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏测试开发架构之路

CentOS7使用firewalld打开关闭防火墙与端口

3773
来自专栏JavaEdge

git rebase

但是与此同时,有些人也在"origin"分支上做了一些修改并且做了提交了. 这就意味着"origin"和"mywork"这两个分支各自"前进"了,它们之间"分叉...

913
来自专栏西枫里博客

win7 下创建逻辑分区

在win98下面创建主DOS分区和逻辑分区都很容易,到了XP的时候,系统会保留一个8M左右的保留空间。到了win7,干脆多了个100M的保留空间。在分区的时候,...

641
来自专栏开源优测

AutoLink开源自动化测试集成解决方案

1163
来自专栏技术小站

电商网站开发记录(一) 项目初始化

在deployment里引入artifact,第一次建的时候发现没有artifact,可能是module之类的没有初始化好,当时也没有吧maven的依赖impo...

1763
来自专栏nummy

【译】runit 快速入门

这篇教程将通过一个简单的示例来讲解如何创建新的runit服务。如果你想了解更多信息,可以查看runit的官方文档。

1643
来自专栏编程坑太多

springboot(19)yml配置

1273
来自专栏cloudskyme

linux ftp命令参数全集

linux ftp命令参数是我们常用的服务器控制手段。那么我们现在就来介绍一些linux ftp命令参数。希望能帮助大家快速查阅,这些命令都是常用的,肯定会对您...

4859
来自专栏Java开发

Linux中Apache(httpd)安装、配置

1.httpd.conf是主配置文件,你可以按需更改,一般来说可能需要自定义端口,那么就vim修改httpd.conf文件的监听端口,改为你希望的

2674
来自专栏张伟博客

CentOS7使用firewalld打开关闭防火墙与端口

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

942

扫码关注云+社区

领取腾讯云代金券