Nginx基于漏桶算法配置限流詳解
Nginx配置限流
Nginx有限流功能,是基于漏桶算法實現(xiàn)的
limit_req_zone是配置在http模塊中的
#設(shè)置限流 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隊列可以將請求緩存起來,只有隊列滿了才會拒絕新的請求,默認(rèn)情況下就算進(jìn)了隊列也是按照rate速率來執(zhí)行的,每分鐘執(zhí)行一個
delay作用
由于排隊執(zhí)行,延遲大大增加,可以使用delay來進(jìn)行設(shè)置,首先nodelay表示沒有延遲,在隊列里的也是直接就執(zhí)行
由于沒有延時了,導(dǎo)致同一時刻要同時處理漏出來的以及隊列中的,那么如何控制并發(fā)數(shù)呢,可以使用delay來進(jìn)行精確地配置
limit_req zone=mylimit burst=10 delay=5;
上述配置delay=5表示從隊列中的第6個請求開始延時,這樣可以控制并發(fā)的數(shù)量
以上就是Nginx基于漏桶算法配置限流詳解的詳細(xì)內(nèi)容,更多關(guān)于Nginx漏桶算法配置限流的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
keepalived+nginx實現(xiàn)網(wǎng)站高可用性
本文主要介紹了keepalived+nginx實現(xiàn)網(wǎng)站高可用性,包含配置Keepalived實現(xiàn)雙主熱備集群架構(gòu),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
Nginx限制某個IP同一時間段的訪問次數(shù)和請求數(shù)示例代碼
nginx可以通過ngx_http_limit_conn_module和ngx_http_limit_req_module配置來限制ip在同一時間段的訪問次數(shù).具體示例代碼大家參考下本文2017-08-08
nginx+uwsgi啟動Django項目的詳細(xì)步驟
nginx+uwsgi+django是我們常用的django部署方式。這篇文章主要介紹了nginx+uwsgi啟動Django項目的詳細(xì)步驟,非常具有實用價值,需要的朋友可以參考下2018-10-10
基于nginx設(shè)置瀏覽器協(xié)商緩存過程詳解
這篇文章主要介紹了基于nginx設(shè)置瀏覽器協(xié)商緩存過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12
windows查看nginx是否啟動及常用命令小結(jié)
這篇文章主要給大家介紹了關(guān)于windows查看nginx是否啟動及常用命令的相關(guān)資料,在Windows系統(tǒng)中,可以使用以下命令來操作和管理Nginx,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
nginx經(jīng)過多層代理后獲取真實來源ip過程詳解
這篇文章主要介紹了nginx經(jīng)過多層代理后獲取真實來源ip過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09

