### **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;
}
~~~

### **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;
}
~~~

②測試每秒只允許一個請求,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;
}
~~~
