0

0

如何解决 Spring Boot 大文件上传返回 503 错误的问题

心靈之曲

心靈之曲

发布时间:2025-12-29 12:56:22

|

507人浏览过

|

来源于php中文网

原创

如何解决 Spring Boot 大文件上传返回 503 错误的问题

spring boot 应用在生产环境上传大于 100mb 的文件时出现 503 错误,且请求未到达控制器,根本原因常是 multipart 功能未显式启用——即使配置了大小限制,`spring.servlet.multipart.enabled=true` 缺失会导致 tomcat 拒绝解析 multipart 请求体,直接返回 503。

在 Spring Boot 中,multipart 支持默认是禁用的(enabled=false),尤其在较早版本(如问题中使用的 Spring 5.0.8.RELEASE)中,仅设置 max-file-size 和 max-request-size 并不足以激活 multipart 解析器。当 Postman 发送大文件的 multipart/form-data 请求时,若 multipart 未启用,嵌入的 Tomcat(或底层 Servlet 容器)会直接拒绝该请求,甚至不将请求转发至 Spring MVC 生命周期,因此你观察不到任何日志、控制器也完全收不到调用——这正是 503 “Service Unavailable” 的典型表现(容器层面拦截,非应用层异常)。

✅ 正确配置需三步到位(application.properties):

# ✅ 必须显式启用 multipart 支持(关键!)
spring.servlet.multipart.enabled=true

# ✅ 设置单文件与总请求体上限(单位:B/K/M/G,支持后缀)
spring.servlet.multipart.max-file-size=500MB
spring.servlet.multipart.max-request-size=500MB

# ✅ 针对内嵌 Tomcat 的额外缓冲区限制(Spring Boot 2.x+ 推荐用 server.tomcat.max-swallow-size)
server.tomcat.max-http-form-post-size=500MB
# (Spring Boot 2.3+ 更推荐:server.tomcat.max-swallow-size=500MB)

⚠️ 注意事项:

知鹿匠
知鹿匠

知鹿匠教师AI工具,新课标教案_AI课件PPT_作业批改

下载
  • spring.servlet.multipart.enabled=true 是前提条件,缺失则其余配置全部失效;
  • 本地 localhost 测试成功而生产环境失败,极可能因反向代理(如 Nginx、ALB、API Gateway)或负载均衡器设置了更严格的请求体限制(如 Nginx 默认 client_max_body_size=1M),需同步检查并调整代理层配置;
  • 若使用云平台(如 AWS ALB、Cloudflare),确认其支持大文件上传且未启用“请求体扫描”等中间件拦截;
  • 生产环境建议添加超时优化(如 server.tomcat.connection-timeout=600000),避免大文件上传因超时中断;
  • Controller 层保持简洁,大文件建议异步处理 + 进度反馈,避免阻塞主线程。

? 验证方式:
启动后访问 /actuator/env(需启用 Actuator),搜索 multipart,确认 spring.servlet.multipart.enabled 值为 true;同时抓包或查看 Tomcat access 日志,确认大文件请求是否真正抵达容器端口

综上,503 并非代码逻辑错误,而是基础设施层的“准入开关”未打开。补全 enabled=true 后,配合合理的大小与超时配置,即可稳定支持百 MB 级文件上传。

相关专题

更多
如何配置Tomcat环境变量
如何配置Tomcat环境变量

配置Tomcat环境变量需要在系统中添加CATALINA_HOME变量,并将Tomcat的安装路径添加到PATH变量中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

113

2023.10.26

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

164

2024.02.23

怎么查看Tomcat源代码
怎么查看Tomcat源代码

查看Tomcat源代码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看源代码;4、理解Tomcat的工作原理;5、参与社区和贡献;6、注意事项;7、持续学习和更新;8、使用工具和插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

94

2024.02.23

常见的tomcat漏洞有哪些
常见的tomcat漏洞有哪些

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

159

2024.02.23

tomcat日志乱码怎么解决
tomcat日志乱码怎么解决

tomcat日志乱码的解决办法:1、修改tomcat的日志编码设置;2、检查ide的编码设置;3、检查操作系统的编码设置;4、使用过滤器处理日志;5、检查外部系统的编码设置;6、检查文件编码方式等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

149

2024.02.23

weblogic和tomcat有哪些区别
weblogic和tomcat有哪些区别

weblogic和tomcat的区别:1、功能;2、性能;3、规模;4、价格;5、安全性;6、配置和管理;7、社区支持;8、集成能力;9、升级和更新;10、可靠性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

196

2024.02.23

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

220

2024.02.23

tomcat启动闪退怎么解决
tomcat启动闪退怎么解决

tomcat启动闪退的解决办法:1、检查java环境;2、检查环境变量配置;3、检查端口被占用;4、检查配置文件编码;5、检查启动时需要的配置文件;6、检查相关文件是否丢失;7、检查防火墙和杀毒软件设置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

154

2024.02.23

ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

121

2025.12.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号