在 server 块中配置 client_max_body_size 100M 可限制客户端请求体最大为100MB,单位支持k/m/g(不区分大小写),设为0则禁用检查;须置于 server { } 内且不可嵌套于 if 等指令中,修改后需 nginx -t 检查并 reload 生效。

在 Nginx 的 server 块中配置客户端请求体最大限制,直接使用 client_max_body_size 指令即可。这是最常用且推荐的方式——既避免影响其他虚拟主机,又比 location 级别更简洁。
怎么写配置
在对应站点的 server 块内添加一行:
-
client_max_body_size 100M;—— 允许最大 100MB 的请求体(如文件上传) - 单位支持
k、m、g(不区分大小写),例如50m、2G - 设为
0表示禁用检查,允许任意大小(慎用)
配置位置要准确
必须放在 server { ... } 大括号内部,且不能嵌套在其他指令块(如 if)里:
- ✅ 正确:
server {<br> listen 80;<br> server_name example.com;<br> client_max_body_size 100M;<br> location / { ... }<br>} - ❌ 错误:写在
http块外、或location块外但不在server内、或用在if条件中
别忘了验证和重载
改完后不能直接生效,必须执行两步:
- 运行
nginx -t检查语法是否正确 - 执行
nginx -s reload或systemctl reload nginx重新加载配置 - 注意:仅
reload即可,无需restart
和其他层级的关系
server 块里的设置会覆盖 http 块中的同名配置,但会被 location 块中的设置再次覆盖:
- 如果某个上传接口路径(如
/upload)需要更大限制,可在其location块里单独加一句client_max_body_size 500M; - 若该
location没有声明,则继承server块的值


















