nginx限流配置
[編輯]1、限制域宣告
以下配置建議統一在http域中進行配置
#定義乙個名為perip_req的limit_req_zone用來儲存session,大小是10m記憶體,
#以$binary_remote_addr 為key,限制平均每分鐘的請求為30個,
#1m能儲存16000個狀態
#以下配置每個ip每秒限制為5/s
limit_req_zone $binary_remote_addr zone=perip_req:1m rate=5r/s;
#以下配置每個server響應請求限制為3000/s
limit_req_zone $server_name zone=perserver_req:50m rate=3000r/s;
#定義乙個名為perip_conn的limit_zone,大小10m記憶體來儲存session,
#以$binary_remote_addr 為key
#且只能放在http作用域
#以下配置按ip配置乙個連線 zone
limit_conn_zone $binary_remote_addr zone=perip_conn:100m;
#以下配置按server配置乙個連線 zone
limit_conn_zone $server_name zone=perserver_conn:50m;
[編輯]2、請求限制
以下配置在location域中限制
#限制每ip每秒不超過20個請求,漏桶數burst為5
#brust的意思就是,如果第1秒、2,3,4秒請求為19個,
#第5秒的請求為25個是被允許的。
#但是如果你第1秒就25個請求,第2秒超過20的請求返回503錯誤。
#nodelay,如果不設定該選項,嚴格使用平均速率限制請求數,
#第1秒25個請求時,5個請求放到第2秒執行,
#設定nodelay,25個請求將在第1秒執行。
limit_req zone=perip_req burst=5 nodelay;
limit_req zone=perserver_req burst=50 nodelay;
[編輯]3、連線&流量限制
以下配置在location域中限制
#連線數限制,每個ip併發請求為2
limit_conn perip_conn 2;
#服務所限制的連線數(即限制了該server併發連線數量)
limit_conn perserver_conn 1000;
#(附加限制,一般情況不需要考慮) #頻寬限制,對單個連線限數,如果乙個ip兩個連線,就是500x2k
#limit_rate 100k;
[編輯]4、限流配置樣例
檔案:nginx limit conf.zip
nginx限流配置
表示處理請求的平均速度 每個請求之間至少要間隔 1000 60 16.7ms 超出的請求將會進入令牌桶中,例如在10ms內發出5個請求則只有乙個能得到處理,其餘4個會進入令牌桶 令牌桶內的令牌可以滿足這4個額外請求的時候,如果不滿足將會返回503或者自定義的status server locatio...
Nginx搶購限流配置
因業務需求經常會有搶購業務,因此需要在負載均衡前端進行限流錯誤。本文同樣也適用於防止cc.limit req zone server name zone sname 10m rate 1r s 限 務器每秒只能有一次訪問成功 limit req zone binary remote addr zon...
Nginx限流配置記錄
nginx限流配置 nginx限流演算法 令牌桶演算法 令牌以固定速率產生,並快取到令牌桶中 令牌桶放滿時,多餘的令牌被丟棄 請求要消耗等比例的令牌才能被處理 令牌不夠時,請求被快取 漏桶演算法 水 請求 從上方倒入水桶,從水桶下方流出 被處理 來不及流出的水存在水桶中 緩衝 以固定速率流出 水桶滿...