Nginx配置client_max_body_size为20M仍返回413上传错误怎么办
Nginx 413错误已设置client_max_body_size仍不生效排查方案
- 先修正配置语法错误
你提供的配置片段末尾多了1个多余的闭合大括号,会导致Nginx配置解析失败,对应的client_max_body_size配置不会生效。先删除多余的大括号,保证配置结构正确:
server { client_max_body_size 20M; listen 80; --- --- }
- 验证配置并重载生效
修改完配置后执行nginx -t命令检查配置语法是否合法,确认返回test is successful后,执行nginx -s reload重载配置,确保修改的配置确实被加载。 - 检查配置作用域是否覆盖上传路径
client_max_body_size可配置在http、server、location三个层级,优先级从高到低为location > server > http。如果你的上传请求匹配到了特定的location块(比如location /upload {}),需要确认该location块内没有设置更小的client_max_body_size值,否则会覆盖server块的20M配置。如果需要全局生效,也可以把client_max_body_size 20M加到http块中。 - 排查上层代理/后端服务的大小限制
- 如果该Nginx前端还有CDN、WAF或其他反向代理服务,需要同步修改上层代理的请求体大小限制,否则413错误会由上层服务返回
- 如果Nginx是转发请求给后端应用(如PHP、Java、Python应用),需要检查后端服务本身的上传大小限制,比如PHP需要调整
php.ini中的upload_max_filesize和post_max_size参数,Spring Boot应用需要调整spring.servlet.multipart.max-file-size等相关参数。
- 确认配置单位正确
client_max_body_size的单位M为大写,旧版本Nginx不识别小写m,如果配置时写错单位也会导致限制不生效。
内容的提问来源于stack exchange,提问作者prashant pandey
相关产品推荐
相关产品推荐

