1.限制請求次數——limit_req_zone模塊html
a.意義:limit_req_zone 表示限制單位時間內的請求數,即速率限制,採用的漏桶算法node
a.在 conf/nginx.conf 配置文件中添加nginx
http { ...... #限制請求次數參數 limit_req_zone $binary_remote_addr zone=one:10m rate=5r/m; ...... server { ...... location /printProducer { ...... #限制請求次數 limit_req zone=one burst=10 nodelay; #自定義返回碼 limit_req_status 598; ...... }
b.參數說明:算法
$binary_remote_addr:表示經過remote_addr這個標識來限制同一客戶端ip請求數spa
zone=one:10m:表示生成一個大小爲10M,名字爲one的內存區域,用來存儲訪問的頻次信息.net
rate=5r/m:表示容許相同標識的客戶端的訪問頻次,這裏限制的是每秒1次,還能夠有好比1r/scode
zone=one:表示使用哪一個配置區域來作限制,與上面 limit_req_zone 裏的name對應server
burst=5:表示設置一個大小爲5的緩衝區當有大量請求(爆發)過來時,超過了訪問頻次限制的請求能夠先放到這個緩衝區內htm
nodelay:若是設置,超過訪問頻次並且緩衝區也滿了的時候就會直接返回503,若是沒有設置,則全部請求會等待排隊blog
limit_req_status 598:設置拒絕請求的返回值。值只能設置 400 到 599 之間(默認是503)
2.限制下載速度
a.在 conf/nginx.conf 配置文件中添加
http { ...... server { ...... location /download{ ...... #不限速閾值 limit_rate_after 10m; #超過閾值限制速度 limit_rate 10k; ...... }
b.參數說明:
limit_rate_after 10m:表示前 10m 大小時不限速
limit_rate 10k:表示超過 limit_rate_after 後以 10kb/s 限速
3.參考文章:
https://www.cnblogs.com/biglittleant/p/8979915.html
https://my.oschina.net/gaga/blog/495444