这些模块默认会全部编译进Nginx,除非手工指定某个模块在configure时排除。
这个模块可以为一个地址指定的会话或者某些特殊情况限制同时连接数,
如下例:
http { limit_zone one $binary_remote_addr 10m; server { location /download/ { limit_conn one 1; } }}
指令
limit_zone
语法:limit_zone zone_">name $variable memory_max_size
默认值:no
使用字段:http
指令描述会话状态存储区域。
会话的数目按照指定的变量来决定,它依赖于使用的变量大小和memory_max_size的值。
如下例:
limit_zone one $binary_remote_addr 10m;
客户端的地址将用于会话,注意$binary_remote_addr变量将替换$remote_addr而被使用。
$remote_addr 变量的值的长度可以是7到15字节,因此大小指定为32或64字节。
$binary_remote_addr 变量的值的长度总是4字节,大小总是32字节。
当会话状态储存区域为1M时理论上可以处理32000个会话,每个会话大小为32字节。
limit_conn
语法:limit_conn zone_name max_clients_per_ip
默认值:no
使用字段:http, server, location
指令指定一个会话的最大同时连接数,超过这个数字的请求将被返回”Service unavailable” (503)代码。
如下例:
limit_zone one $binary_remote_addr 10m; server { location /download/ { limit_conn one 1;}
这将指定一个地址只能同时存在一个连接。
limit_conn_log_level
语法: limit_conn_log_level info | notice | warn | error
默认值: error
使用字段: http, server, location
当达到最大连接数后记录日志的等级。