限定 HTTP 请求方法
limit_except 指令可对客户端的请求方法做限制,其使用规则如下:
语法: limit_except method ... { ... }
默认: —
可使用的上下文: location
该指令的含义是对除 method 之外的请求方法做限制,可指定多个 method,以空格隔开。
method 参数可以是以下之一:GET、HEAD、POST、PUT、DELETE、MKCOL、COPY、MOVE、OPTIONS、PROPFIND、PROPPATCH、LOCK、UNLOCK 或 PATCH。
要注意的一点是,允许 GET 方法会使 HEAD 方法也被允许。
看个例子,配置如下虚拟主机:
server {
listen 80;
location / {
limit_except GET POST {
allow 10.0.1.0/24;
deny all;
}
return 200 'OK';
}
}
该示例含义如下:
- 对
GET、POST请求不做限制; - 仅允许
10.0.1.0/24网段的主机发送除GET、POST以外的请求;
限定响应传输速率
limit_rate 指令可用来限制向客户端传输响应内容的速率,该速率以每秒字节数指定,零值表示禁用速率限制。其使用规则如下:
语法: limit_rate rate;
默认: limit_rate 0;
可使用的上下文: http, server, location, if in location
该限制是根据请求设置的,因此,如果客户端同时打开两个连接,则总速率可是指定限制的两倍。
限定请求体大小
client_max_body_size 指令可限制请求报文中 body 部分的上限,主要通过检测请求报文首部中的 Content_Length 来判定。其使用规则如下:
语法: client_max_body_size size;
默认: client_max_body_size 1m;
默认的上下文: http, server, location
如果请求体的大小超过配置的值,则会向客户端返回 413(请求实体太大)错误码。
设置为 0 将禁用对客户端请求主体大小的检查。
评论区