91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nginx配置limit_req限制ip訪問速率詳解

發布時間:2020-06-12 14:40:52 來源:網絡 閱讀:1029 作者:Java高知 欄目:建站服務器

歡迎掃碼加入Java高知×××流

nginx配置limit_req限制ip訪問速率詳解


1、漏桶原理

漏桶原理是什么呢?我們可以從字面上簡單的理解,就是有一個桶,它的體積是固定的,桶底下有一個小洞會不停的漏水出去,而桶的上方有個水龍頭,也不停的往桶里灌水。

假設我們這個桶的體積是1L,小洞的口能漏水的最大速率為100ml/s,對以下情況進行實驗:

(1)進水的速率是50ml/s,這時候對于小洞來說完全無壓力,那么這個桶里的水就不會溢出,所有的水都會從小洞里漏出來。

(2)接著我們把水龍頭出水的速率調大到100ml/s,這個時候,和小洞漏水的速率一樣,這個時候桶里的水也不會溢出,桶中的水不會有變化,所有的水都會從小洞里漏出來。

(3)我們再把水龍頭調大,調到150m/m,這個時候,進水的速率比出水的速率每秒大50ml,經過20秒后,桶里的水滿了,會溢出來,之后每秒都會有50ml的水會溢出。

以上的不管哪種情況,相同的一點是,漏水的最大速率是一樣的。當進水的速率大于漏水的速率,桶滿水之后,將有一部分水會被溢出。

換成我們訪問一臺服務器也一樣,限制其流量的存儲量和速率,當處理不過來的時候會直接廢棄掉一些請求,確保服務器的正常流量處理。

這就是漏桶原理。


2、Nginx漏桶原理配置

Nginx采用漏桶原理(leaky bucket),對請求的ip進行過于頻繁的限制,參考文檔鏈接:https://en.wikipedia.org/wiki/Leaky_bucket

具體的配置如下:


#以用戶二進制IP地址,定義三個漏桶,滴落速率1-3req/sec,桶空間1m,1M能保持大約16000個(IP)狀態
limit_req_zone $binary_remote_addr zone=qps1:1m  rate=1r/s;
limit_req_zone $binary_remote_addr zone=qps2:1m  rate=2r/s;
limit_req_zone $binary_remote_addr zone=qps3:1m  rate=3r/s;
 
server {
 
#速率qps=1,峰值burst=5,延遲請求
#嚴格按照漏桶速率qps=1處理每秒請求
#在峰值burst=5以內的并發請求,會被掛起,延遲處理
#超出請求數限制則直接返回503
#客戶端只要控制并發在峰值[burst]內,就不會觸發limit_req_error_log

# 例1:發起一個并發請求=6,拒絕1個,處理1個,進入延遲隊列4個:
#time  request  refuse  sucess  delay
#00:01    6    1    1      4
#00:02    0    0    1      3
#00:03    0    0    1      2
#00:04    0    0    1      1
#00:05    0    0    1      0
location /delay {
  limit_req  zone=qps1 burst=5;
}
 
#速率qps=1,峰值burst=5,不延遲請求
#加了nodelay之后,漏桶控制一段時長內的平均qps = 漏桶速率,允許瞬時的峰值qps > 漏桶qps
#所以峰值時的最高qps=(brust+qps-1)=5
#請求不會被delay,要么處理,要么直接返回503
#客戶端需要控制qps每秒請求數,才不會觸發limit_req_error_log

# 例2:每隔5秒發起一次達到峰值的并發請求,由于時間段內平均qps=1 所以仍然符合漏桶速率:
#time  request   refuse  sucess
#00:01     5     0     5
#00:05     5     0     5
#00:10     5     0     5

# 例3:連續每秒發起并發請求=5,由于時間段內平均qps>>1,超出的請求被拒絕:
#time  request   refuse   sucess
#00:01     5     0      5
#00:02     5     4      1
#00:03     5     4      1
 
location /nodelay {
  limit_req  zone=qps1 burst=5 nodelay;
}
 
}


歡迎掃碼加入Java高知×××流

nginx配置limit_req限制ip訪問速率詳解

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

深水埗区| 灵寿县| 高陵县| 商水县| 琼结县| 伊宁市| 凤翔县| 双桥区| 霞浦县| 望江县| 沁源县| 谢通门县| 哈巴河县| 洛宁县| 鲜城| 湘乡市| 天津市| 忻城县| 白山市| 西青区| 团风县| 库尔勒市| 内乡县| 彭州市| 贵德县| 宁蒗| 乌兰县| 蚌埠市| 二连浩特市| 铜山县| 宜黄县| 海安县| 阿巴嘎旗| 明光市| 灵丘县| 广宗县| 虹口区| 龙江县| 伊宁县| 来安县| 玉门市|