nginx limit_zone与limit_req_zone测试报告

来源:未知 责任编辑:责任编辑 发表时间:2014-01-25 11:37 点击:

nginx 上有两个限制连接的模块一个是 limit_zone 另一个是 limie_req_zone,两个都可以限制连接,但具体有什么不同呢?
下面是 nginx 官网上给的解释
limit_req_zone
Limit frequency of connections from a client.
This module allows you to limit the number of requests for a given session, or as a special case, with one address.
Restriction done using leaky bucket.

limit_zone
Limit simultaneous connections from a client.
This module makes it possible to limit the number of simultaneous connections for the assigned session or as a special case, from one address.

按照字面的理解,lit_req_zone的功能是通过 令牌桶原理来限制 用户的连接频率,(这个模块允许你去限制单个地址 指定会话或特殊需要 的请求数 )
而 limit_zone 功能是限制一个客户端的并发连接数。(这个模块可以限制单个地址 的指定会话 或者特殊情况的并发连接数)
一个是限制并发连接一个是限制连接频率,表面上似乎看不出来有什么区别,那就看看实际的效果吧~~~
在我的测试机上面加上这两个参数下面是我的部分配置文件
http{
limit_zone one  $binary_remote_addr  10m;
#limit_req_zone  $binary_remote_addr  zone=req_one:10m rate=1r/s;
server
{
 ......
limit_conn   one  1;
#limit_req   zone=req_one  burst=120;
......
}
    }

解释一下 limit_zone one  $binary_remote_addr  10m;
这里的 one 是声明一个 limit_zone 的名字,$binary_remote_addr是替代 $remore_addr 的变量,10m 是会话状态储存的空间
limit_conn one 1 ,限制客户端并发连接数量为1
先测试 limit_zone 这个模块
我找一台机器 用ab 来测试一下 命令格式为
ab -c 100 -t 10 php">http://192.168.6.26/test.php
test.php 内容是phpinfo
看看日志里的访问

看来也不一定能限制的住1秒钟1个并发连接,(有网友跟我说这是因为测试的文件本身太小了才会这样,有时间一定测试一下),从日志里面可以看得出来 除了几个200以外其他的基本都是503,多数并发访问都被503了。
我又用ab多运行了一会儿,发现另一种情况


似乎随着数量的增多效果也会发生一些变化,并不是完全达到模块说明中的效果
看看当前的tcp连接数
# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TIME_WAIT 29
FIN_WAIT1 152
FIN_WAIT2 2
ESTABLISHED 26
SYN_RECV 16

这次测试下 limit_req_zone,配置文件稍微改动一下
http{
#limit_zone one  $binary_remote_addr  10m;
limit_req_zone  $binary_remote_addr  zone=req_one:10m rate=1r/s;
server
{
 ......
#limit_conn   one  1;
limit_req   zone=req_one  burst=120;
......
}
    }
restart 一下 nginx
简单说明一下, rate=1r/s 的意思是每个地址每秒只能请求一次,也就是说根据令牌桶原理 burst=120 一共有120块令牌,并且每秒钟只新增1块令牌,

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • /etc/fstab 详解
  • nginx主主集群
  •  LVS-NAT和LVS-DR模式的实现详解
  •  RHCE考试之磁盘配额
  • 学习笔记:ACL详解
  •  LVM逻辑卷管理器
  • suse linux双网卡双网关配置
  •  Nginx主主负载均衡架构
  • ubuntu学习Mysql

快速直达

操作系统导航

LinuxWindows虚拟机
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1