限流保護——nginx限流模塊

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

相關文章
相關標籤/搜索