Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2235444
  • 博文数量: 533
  • 博客积分: 8689
  • 博客等级: 中将
  • 技术积分: 7046
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 10:00
文章分类

全部博文(533)

文章存档

2024年(2)

2023年(4)

2022年(16)

2014年(90)

2013年(76)

2012年(125)

2011年(184)

2010年(37)

分类: LINUX

2011-06-28 13:52:56



nginx 限制并发连接数 ngx_http_limit_zone_module

本模块可以针对条件,进行会话的数控制。(例如:限制每个IP的并发连接数。)

__配置示例__

http { : limit_zone one $binary_remote_addr 10m; : ... : server { : ... : location /download/ { : limit_conn one 1; : } 指令
  • [#limit_zone limit_zone]
  • [#limit_conn limit_conn]
 limit_zone

语法:limit_zone zone_name $variable the_size

默认值:no

作用域:http

本指令定义了一个数据区,里面记录会话状态信息。
$variable 定义判断会话的变量;the_size 定义记录区的总容量。

例子:

limit_zone one $binary_remote_addr 10m;

定义一个叫“one”的记录区,总容量为 10M,以变量 $binary_remote_addr 作为会话的判断基准(即一个地址一个会话)。


您可以注意到了,在这里使用的是 $binary_remote_addr 而不是 $remote_addr。

$remote_addr 的长度为 7 至 15 bytes,会话信息的长度为 32 或 64 bytes。而 $binary_remote_addr 的长度为 4 bytes,会话信息的长度为 32 bytes。

当区的大小为 1M 的时候,大约可以记录 32000 个会话信息(一个会话占用 32 bytes)。

 limit_conn

语法:limit_conn zone_name the_size

默认值:no

作用域:http, server, location

指定一个会话最大的并发连接数。当超过指定的最发并发连接数时,服务器将返回 "Service unavailable" (503)。

例子:

limit_zone one $binary_remote_addr 10m; : server { : location /download/ { : limit_conn one 1; : }

定义一个叫“one”的记录区,总容量为 10M,以变量 $binary_remote_addr 作为会话的判断基准(即一个地址一个会话)。限制 /download/ 目录下,一个会话只能进行一个连接。简单点,就是限制 /download/ 目录下,一个IP只能发起一个连接,多过一个,一律503。





阅读(3079) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~