1. 程式人生 > 實用技巧 >Nginx 對客戶端請求的限制

Nginx 對客戶端請求的限制

本文記錄一下Nginx靜態web伺服器對客戶端請求限制的配置項。 1)按HTTP方法名限制請求 語法:limit_except method... {...} 配置塊:location Nginx可以通過該配置來限制客戶端請求,可以取值為GET、HEAD、POST、PUT、DELETE、MKCOL、COPY、MOVE、OPTIONS、PROPFIND、PROPPATCH、LOCK、UNLOCK、PATCH。 注:允許GET方法就意味著允許HEAD方法。附上一個禁止GET方法與HEAD方法的配置。
limit_except GET {
    allow 192.168.1.0/32;
    deny all;
}

2)HTTP請求包體最大值 語法:client_max_body_size size; 預設:client_max_body_size 1m; 配置塊:http、server、location 瀏覽器在傳送含較大HTTP包體的請求時,其頭部會有一個Content-Length欄位,該配置項主要用來限制Content-Length的大小。當用戶請求時Content-Length的大小超過了配置值,就會直接返回413-Request Entity Too Large。 3)對請求的限制 語法:limit_rate speed; 預設:limit_rate 0; 配置塊:http、server、location、if 該配置時限制客戶端請求的每秒傳輸的位元組數。 針對不同客戶端,可以使用$limit_rate引數執行不同的策略:
server {
    if ($slow) {
        set $limit_rate 4k;
    }
}

4)不限速的額度 語法:limit_rate_after time; 預設:limit_rate_after 1m; 配置塊:http、server、location、if 該配置表示當Nginx向客戶端傳送的響應長度超過配置值時才開始限速。