nginx限流的兩種方式(配置)

nginx限流

爲什麼要限流?
在微服務開發中,主要是爲了解決微服務的雪崩,nginx限流時有效辦法之一。nginx相當於大門

方式1

控制速率
在這裏插入圖片描述
解釋:

1.全局配置
$binary_remote_addr : 表示根據用戶的ip進行限流
10m:限流大小爲10m
zone:表示當前緩存空間的名稱--one,大小爲10m
rate:速率 ---1個請求每秒
2.局部使用
limit_req zone=one : 表示使用前面配置的速率控制算法

注意:改完記得重啓nginx : 重啓並加載配置文件

./nginx -s reload

綜上:兩行配置

limit_req_zone $binary_remote_addr zone=contentRateLimit:10m rate 3r/s;
limit_req zone=contentRateLimit;

如果有時正常流量突然增大,超出的請求將被拒絕,無法處理突發
流量,可以結合 burst 參數使用來解決該問題,圖中的burst所示:

burst=5表示:每秒緩衝的最大請求量爲5,能處理的只要一個,剩下四個在緩衝隊列中
,在burst後還可以加上nodelay : 表示所有請求併發執行

在這裏插入圖片描述

2.併發量控制(客戶端)

在這裏插入圖片描述

由於阿里雲服務器不能訪問到本地的微服務.所以openresty還得安裝到本地的linux中,而且用到了lua,還得重新安裝一次lua.我內心有點小崩潰....

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章