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向客户端发送的响应长度超过配置值时才开始限速。
原文地址:https://www.cnblogs.com/52why/p/13292715.html