1. 程式人生 > >nginx配置訪問頻率

nginx配置訪問頻率

頻率 serve 文件 次數 rem oca 文件的 zone 返回

nginx可以通過limit_conn_zone和limit_req_zone兩個組件來限制客戶端訪問服務端的目錄和文件的頻率和次數,能夠抵擋住部分cc、ddos攻擊。

限制訪問頻率:

http{
    ...

    #定義一個名為allips的limit_req_zone用來存儲session,大小是10M內存,
    #以$binary_remote_addr 為key,限制平均每秒的請求為20個,
    #1M能存儲16000個狀態,rete的值必須為整數,
    #如果限制兩秒鐘一個請求,可以設置成30r/m

    limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
    ...
    server
{ ... location { ... #限制每ip每秒不超過20個請求,漏桶數burst為5 #brust的意思就是當每秒超過20個請求時,5個以內的請求會被延遲訪問,超過5個的直接返回503 #nodelay,設置該選項,將嚴格使用平均速率限制請求數,超過請求頻率的直接返回503 limit_req zone=allips burst=5 nodelay; ... } ... } ... }

#註意配置的作用域

限制並發連接數:

http{
    ...

    #定義一個名為all_zone的limit_zone,大小10M內存來存儲session,
    #nginx 1.18以後用limit_conn_zone替換了limit_conn
    limit_conn_zone   all_zone  $binary_remote_addr  10m;  
    ...
    server{
        ...
        location {
            ...
           limit_conn all_zone 20;          #連接數限制

           #帶寬限制,對單個連接限數,限制帶寬上限500k
           limit_rate 500k;            

            ...
        }
        ...
    }
    ...
}

配置訪問白名單:

nginx配置訪問頻率