nginx限制ip并发数
2016-02-22 11:28
405 查看
以下为配置过程:
http层:
server层:
limit_conn addr 2; 表示限制并发数量最高为2,这个数字可以根据自己实际情况设置
测试:
写一个测试用的a.jsp
在另外一台服务器用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并发限制
http层:
server层:
limit_conn addr 2; 表示限制并发数量最高为2,这个数字可以根据自己实际情况设置
测试:
写一个测试用的a.jsp
在另外一台服务器用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并发限制
相关文章推荐
- 【Linux 优化篇】之 编译安装Nginx+php
- ubuntu 14.04 nginx php
- nginx的权限问题(Permission denied)解决办法
- Nginx----使用压缩传输
- 添加nginx为系统服务(service nginx start/stop/restart)
- nginx的学习
- nginx的log、upstream和server
- nginx的常规配置
- 【Nginx入门系列】第四章 通过域名匹配虚拟主机,不修改端口
- 【Nginx入门系列】第三章 通过端口号区分虚拟主机
- nginx配置学习文章
- ubuntu 12.04 下nginx安装步骤
- NGINX模块
- Nginx转发请求
- 【Nginx入门系列】第二章 外部无法访问Nginx服务器
- 【Nginx入门系列】第一章 手把手带你搭建Nginx服务器
- 安装nginx-rtmp-module和ffmpeg
- RedHat5.7+ice3.4.2+php5.2.17+nginx1.8.1环境配置
- 实现nginx随机直接输出字符
- Nginx笔记