client_max_body_size

限制客户端请求正文的最大大小。 — NGINX HTTP Core

client_max_body_size
httpserverlocation
语法client_max_body_size size;
默认值1m
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

`client_max_body_size` 指令在 NGINX 中指定允许的客户端请求正文的最大大小,这对于控制资源使用和防止滥用非常重要。该指令可以在三种上下文中配置:`http`、`server` 和 `location`,允许根据希望的限制范围灵活应用。 `client_max_body_size` 的参数可以使用各种大小单位设置,例如 'k' 表示千字节,'m' 表示兆字节,或 'g' 表示吉字节。例如,指定 `client_max_body_size 10m;` 将请求正文限制为最多 10 兆字节。如果客户端尝试发送比指定限制更大的请求正文,NGINX 将立即返回 `413 Request Entity Too Large` 错误,从而保护服务器免受过大负载。 需要注意的是,在不同级别设置该指令可能会根据请求处理的上下文导致不同的行为。例如,如果某个 `location` 块将 `client_max_body_size` 设置为比 `http` 级别更小的值,那么在请求处理时 `location` 级别的设置将优先。这种分层方法使管理员能够根据不同应用部分的需要实施特定配置。

配置示例

server {
    listen 80;
    server_name example.com;

    client_max_body_size 10m;

    location /upload {
        proxy_pass http://backend;
    }
}

将 `client_max_body_size` 设置得过低可能会阻止合法的文件上传,从而导致不佳的用户体验。

确保任何应用级设置与该指令保持一致,以避免混淆和错误。

请记住,该指令不会影响客户端指定的 `Content-Length` 头。