中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

nginx配置limit_req限制ip訪問(wèn)速率詳解

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

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到江華網(wǎng)站設(shè)計(jì)與江華網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋江華地區(qū)。

nginx配置limit_req限制ip訪問(wèn)速率詳解

1、漏桶原理

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

假設(shè)我們這個(gè)桶的體積是1L,小洞的口能漏水的最大速率為100ml/s,對(duì)以下情況進(jìn)行實(shí)驗(yàn):

(1)進(jìn)水的速率是50ml/s,這時(shí)候?qū)τ谛《磥?lái)說(shuō)完全無(wú)壓力,那么這個(gè)桶里的水就不會(huì)溢出,所有的水都會(huì)從小洞里漏出來(lái)。

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

(3)我們?cè)侔阉堫^調(diào)大,調(diào)到150m/m,這個(gè)時(shí)候,進(jìn)水的速率比出水的速率每秒大50ml,經(jīng)過(guò)20秒后,桶里的水滿了,會(huì)溢出來(lái),之后每秒都會(huì)有50ml的水會(huì)溢出。

以上的不管哪種情況,相同的一點(diǎn)是,漏水的最大速率是一樣的。當(dāng)進(jìn)水的速率大于漏水的速率,桶滿水之后,將有一部分水會(huì)被溢出。

換成我們?cè)L問(wèn)一臺(tái)服務(wù)器也一樣,限制其流量的存儲(chǔ)量和速率,當(dāng)處理不過(guò)來(lái)的時(shí)候會(huì)直接廢棄掉一些請(qǐng)求,確保服務(wù)器的正常流量處理。

這就是漏桶原理。

2、Nginx漏桶原理配置

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

具體的配置如下:

#以用戶二進(jìn)制IP地址,定義三個(gè)漏桶,滴落速率1-3req/sec,桶空間1m,1M能保持大約16000個(gè)(IP)狀態(tài)
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,延遲請(qǐng)求
#嚴(yán)格按照漏桶速率qps=1處理每秒請(qǐng)求
#在峰值burst=5以內(nèi)的并發(fā)請(qǐng)求,會(huì)被掛起,延遲處理
#超出請(qǐng)求數(shù)限制則直接返回503
#客戶端只要控制并發(fā)在峰值[burst]內(nèi),就不會(huì)觸發(fā)limit_req_error_log

# 例1:發(fā)起一個(gè)并發(fā)請(qǐng)求=6,拒絕1個(gè),處理1個(gè),進(jìn)入延遲隊(duì)列4個(gè):
#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,不延遲請(qǐng)求
#加了nodelay之后,漏桶控制一段時(shí)長(zhǎng)內(nèi)的平均qps = 漏桶速率,允許瞬時(shí)的峰值qps > 漏桶qps
#所以峰值時(shí)的最高qps=(brust+qps-1)=5
#請(qǐng)求不會(huì)被delay,要么處理,要么直接返回503
#客戶端需要控制qps每秒請(qǐng)求數(shù),才不會(huì)觸發(fā)limit_req_error_log

# 例2:每隔5秒發(fā)起一次達(dá)到峰值的并發(fā)請(qǐng)求,由于時(shí)間段內(nèi)平均qps=1 所以仍然符合漏桶速率:
#time  request   refuse  sucess
#00:01     5     0     5
#00:05     5     0     5
#00:10     5     0     5

# 例3:連續(xù)每秒發(fā)起并發(fā)請(qǐng)求=5,由于時(shí)間段內(nèi)平均qps>>1,超出的請(qǐng)求被拒絕:
#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訪問(wèn)速率詳解

當(dāng)前文章:nginx配置limit_req限制ip訪問(wèn)速率詳解
文章URL:http://www.rwnh.cn/article38/ghsdpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站建設(shè)、面包屑導(dǎo)航、服務(wù)器托管域名注冊(cè)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
鹤壁市| 宜宾市| 永修县| 屯昌县| 娄底市| 吴旗县| 天峻县| 梁平县| 南郑县| 武平县| 台南县| 射阳县| 宝清县| 汨罗市| 涟水县| 牟定县| 祁连县| 青州市| 乐山市| 福贡县| 若尔盖县| 通山县| 阿勒泰市| 阿巴嘎旗| 桐柏县| 建阳市| 德保县| 龙山县| 怀集县| 太白县| 宁明县| 千阳县| 海盐县| 泸水县| 阆中市| 万源市| 廉江市| 定襄县| 安泽县| 色达县| 华坪县|