ngx_http_limit_conn_module
ngx_http_limit_conn_module
模块用于限制每个已定义的 key 的连接数量,特别是来自单个 IP 地址的连接数量。并非所有的连接都会被计数。只有当服务器处理了请求并且已经读取了整个请求头时,连接才被计数。
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
...
server {
...
location /download/ {
limit_conn addr 1;
}
- | 说明 |
语法 | limit_conn zone number ; |
默认 | —— |
上下文 | http、server、location |
设置给定键值的共享内存区域和最大允许连接数。当超过此限制时,服务器将返回错误响应请求。例如:
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location /download/ {
limit_conn addr 1;
}
同一时间只允许一个 IP 地址一个连接。
在 HTTP/2和 SPDY 中,每个并发请求都被视为一个单独的连接。
可以有多个
limit_conn
指令。 例如,以下配置将限制每个客户端 IP 连接到服务器的数量,同时限制连接到虚拟服务器的总数:limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server {
...
limit_conn perip 10;
limit_conn perserver 100;
}
当且仅当在当前级别上没有
limit_conn
指令时,这些指令才从前一级继承。- | 说明 |
语法 | limit_conn_log_level info | notice | warn | error ; |
默认 | limit_conn_log_level error; |
上下文 | http 、server、location |
提示 | 该指令在 0.8.18 版本中出现 |