限定 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 将禁用对客户端请求主体大小的检查。
评论区