http.limits
limits用来设置对接收到的HTTP请求的限制。请求头和正文大小都可以被限制。
请求头大小可以限制为某些字节。由于Go库的工作方式,一个限制将会应用于同一监听器上的所有站点(如果有多个配置,则选择最小限制)。
请求体大小也可以是限制的。当从请求体读取的字节数超过限制时,读取将终止,并向客户端发送一个错误。(从技术上讲,它依赖于每个读取请求主体的每一个中间件来正确处理错误,但是标准的Caddy指令应该返回HTTP 413状态码。)默认情况下,没有大小限制。
大小值必须是正整数,并被解释为字节,除非给定了单位。有效示例:3500(3500字节)、500kb(500千字节)、10mb(10兆字节)、1gb (1千兆字节)。
语法
limits size
- size 是整个站点的头信息和主体(单独)最大大小。
要做更多控制,需要打开一个块:
limits {
header size
body [path] size
}
- header 限制请求头的大小。
- body 限制请求体的大小,可选项可设置只用于一个基本路径。
示例
限制所有请求的头和主体最多7.5k字节。
limits 7500
只对/upload路径限制请求体最多50兆字节:
limits {
body /upload 50mb
}
各种限制:
limits {
header 100KB
body /upload 100MB
body /profile 25KB
body /api 10KB
}