nginx中的limit_req限速設(shè)置配置示例
更新時(shí)間:2015年03月26日 10:34:41 投稿:junjie
這篇文章主要介紹了nginx中的limit_req限速設(shè)置配置示例,本文直接給出配置文件例子,其中包含大量中文注釋,需要的朋友可以參考下
WIKI:
http://wiki.nginx.org/HttpLimitReqModule
漏桶原理(leaky bucket):
http://en.wikipedia.org/wiki/Leaky_bucket
實(shí)例:
#以用戶二進(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í)長內(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;
}
}
相關(guān)文章
WebApi部署多服務(wù)器配置Nginx負(fù)載均衡的教程
這篇文章主要介紹了WebApi部署多服務(wù)器配置Nginx負(fù)載均衡 ,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Nginx $remote_addr和$proxy_add_x_forwarded_for變量的實(shí)現(xiàn)
本文主要介紹了Nginx $remote_addr和$proxy_add_x_forwarded_for變量的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
Nginx解決Http慢攻擊(Slow HTTP Attack)的方法
緩慢的HTTP拒絕服務(wù)攻擊是一種專門針對(duì)于Web的應(yīng)用層拒絕服務(wù)攻擊,本文給大家介紹了Nginx解決Http慢攻擊(Slow HTTP Attack)的方法,需要的朋友可以參考下2024-02-02
強(qiáng)大的 Web 應(yīng)?服務(wù)器OpenResty安裝(Nginx倉庫)
OpenResty 是?個(gè)強(qiáng)大的 Web 應(yīng)?服務(wù)器,Web 開發(fā)?員可以使用 Lua 腳本語?調(diào)動(dòng) Nginx ?持的各種 C 以及 Lua 模塊,更主要的是在性能方面,OpenResty可以快速構(gòu)造出足以勝任 10K 以上并發(fā)連接響應(yīng)的超高性能 Web 應(yīng)用系統(tǒng)2023-06-06

