ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## limit_conn基本功能 1. 用户限制客户端并发连接数; 2. 默认编译进nginx,通过--without-http_limit_conn_module禁用; 3. 使用共享内存,对所有worker子进程生效; ## 常用指令 1. limit_conn_zone; 2. limit_conn_status; 3. limit_conn_log_level; 4. limit_conn; ## limit_conn_zone 语法: ``` limit_conn_zone key zone=name.size //key用来标识客户端唯一的标识 ``` 默认值: ``` 无 ``` 上下文: ``` http ``` 示例: ``` limit_conn_zone $binary_remote_addr zone=addr:10m //$binary_remote_addr相对于$remote_addr占用的字节更少 ``` ## limit_conn_status 语法: ``` limit_conn_status code ``` 默认值: ``` limit_conn_status 503 //当触发了限速机制返回503状态码 ``` 上下文: ``` http | server | location ``` ## limit_conn_log_level 语法: ``` limit_conn_log_level info | nitoce | warn | error; ``` 默认值: ``` limit_conn_log_level error; ``` 上下文: ``` http | server | location ``` ## limit_conn 语法: ``` limit_conn zone number; //zone就是limit_conn_zone定义的名称 ``` 默认值: ``` 无 ``` 上下文: ``` http | server | location ``` ## 示例 ``` http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; limit_conn_zone $binary_remote_addr zone=limit_addr:10m; //只能在http段中,将客户端IP地址作为唯一标识,定义的zone名称是limit_addr,使用10m共享内存; server { listen 8080; server_name www.lzj.com; charset utf-8; location / { root html; index index.html; limit_conn_status 503; //触发限速条件,返回503 limit_conn_log_level warn; limit_conn limit_addr 2; //使用limit_addr这个名称的限制条件,设定并发连接数限制为2 limit_rate 50; //限制速度,方便演示,每秒50个字节; } } } ```