Nginx 對客戶端請求的限制
阿新 • • 發佈:2020-07-13
本文記錄一下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方法的配置。
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引數執行不同的策略:
4)不限速的額度
語法:limit_rate_after time;
預設:limit_rate_after 1m;
配置塊:http、server、location、if
該配置表示當Nginx向客戶端傳送的響應長度超過配置值時才開始限速。
limit_except GET { allow 192.168.1.0/32; deny all; }
server { if ($slow) { set $limit_rate 4k; } }