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
}