### **1.连接限制** ~~~ Syntax: limit_conn_zone key zone=name:size; Default: —— Context: http ~~~ limit_conn_zone :开辟一块空间 key:以什么作为key存储,比如可以用ip作为限制,则ip为key zone=name:size:name为申请空间的名字,方便后面其他调用,size表示大小 ~~~ Syntax: limit_conn zone number; Default: —— Context: http,server,location ~~~ zone:表示空间名字 number:表示同一时间运行的并发个数 ***** #### **测试:** ~~~ limit_conn_zone $binary_remote_addr zone=conn_zone:1m; location / { root /opt/app/code; limit_conn conn_zone 1; index index.html index.htm; } ~~~ ![](https://img.kancloud.cn/56/c6/56c6910e85784ce3ddeacae583fa3593_1887x872.png) ### **2.请求限制** ~~~ Syntax: limit_req_zone key zone=name:size rate=rate; Default: —— Context:http ~~~ key:以什么作为key存储,比如可以用ip作为限制,则ip为key zone=name:size:name为申请空间的名字,方便后面其他调用,size表示大小 rate表示的是请求的速率 ~~~ Syntax: limit_req zone=name [burst=number][nodelay]; Default:—— Context:http,server,location ~~~ zone:表示空间名字 number:表示同一时间运行的并发个数 ***** #### **测试** ①测试每秒只允许一个请求 ~~~ # 设置空间名为req_zone 大小为1m,速率为每秒1个,地址的二进制的客户端地址用于节省空间 limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s; location / { root /opt/app/code; limit_req zone=req_zone; index index.html index.htm; } ~~~ ![](https://img.kancloud.cn/01/d0/01d02cae9b51f8270e84cce9a9b24641_1920x892.png) ②测试每秒只允许一个请求,3个延迟响应 ~~~ # 设置空间名为req_zone 大小为1m,速率为每秒1个,地址的二进制的客户端地址用于节省空间 limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s; location / { root /opt/app/code; limit_req zone=req_zone burst=3 nodelay; index index.html index.htm; } ~~~ ![](https://img.kancloud.cn/bb/4a/bb4ac154cc98414ce0f815a51e9f8338_1920x944.png)