Nginx基于漏桶算法配置限流詳解
Nginx配置限流
Nginx有限流功能,是基于漏桶算法實現(xiàn)的
limit_req_zone是配置在http模塊中的
#設置限流 zone用來定義ip狀態(tài)和url訪問頻率的共享區(qū)域,其中mylimit為區(qū)域名稱,冒號后為區(qū)域大小,16000個IP地址的狀態(tài)信息大約是1M,rate為最大請求速率(如每分鐘一個請求) limit_req_zone $binary_remote_addr zone=mylimit:1m rate=1r/m;
limit_req是配置在location塊、server塊、http塊中
# 請求限流 zone為上述定義的區(qū)域名稱 burst為排隊大小 nodelay表示不限制單個請求的延遲時間 limit_req zone=mylimit burst=10 nodelay;
burst作用
漏桶算法是勻速的,如上述的示例rate=1r/m,每分鐘就只漏出一個請求,如果一分鐘來了很多的請求,就只能處理一個,其他的都拋棄掉。
但是burst的配置可以使用FIFO隊列可以將請求緩存起來,只有隊列滿了才會拒絕新的請求,默認情況下就算進了隊列也是按照rate速率來執(zhí)行的,每分鐘執(zhí)行一個
delay作用
由于排隊執(zhí)行,延遲大大增加,可以使用delay來進行設置,首先nodelay表示沒有延遲,在隊列里的也是直接就執(zhí)行
由于沒有延時了,導致同一時刻要同時處理漏出來的以及隊列中的,那么如何控制并發(fā)數(shù)呢,可以使用delay來進行精確地配置
limit_req zone=mylimit burst=10 delay=5;
上述配置delay=5表示從隊列中的第6個請求開始延時,這樣可以控制并發(fā)的數(shù)量
以上就是Nginx基于漏桶算法配置限流詳解的詳細內容,更多關于Nginx漏桶算法配置限流的資料請關注腳本之家其它相關文章!
相關文章
使用nginx+tomcat+keepalived實現(xiàn)高可用的詳細步驟
這篇文章主要介紹了nginx+tomcat+keepalived實現(xiàn)高可用,包括安裝nginx服務的步驟,詳細介紹了安裝keepalived的方法,對nginx+tomcat+keepalived高可用相關知識感興趣的朋友一起看看吧2022-03-03
windows系統(tǒng)安裝配置nginx環(huán)境
這篇文章介紹了windows系統(tǒng)安裝配置nginx環(huán)境的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06

