You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat参数maxSwallowSize的具体作用是什么?

maxSwallowSize 参数作用详解
  • 本质是Tomcat针对「服务端提前终止处理的请求」设置的流量兼容参数,专门解决大请求触发服务端提前返回错误时的连接异常断开问题。

触发场景说明

当你上传文件大小超过Spring Boot配置的spring.servlet.multipart.max-file-size或spring.servlet.multipart.max-request-size阈值时,Tomcat会第一时间判定当前请求非法,需要返回413 Payload Too Large错误。但此时客户端仍会按照HTTP协议规则持续发送剩余的文件内容,不会主动停止数据传输。
这种场景下Tomcat有两种处理逻辑:

  1. 直接断开TCP连接:正在发送数据的客户端会收到连接重置信号,也就是你遇到的ERR_CONNECTION_RESET报错,甚至根本收不到服务端返回的错误响应
  2. 先接收(官方描述里的「吞入」)客户端剩余的上传数据,全部接收完成后再返回错误响应:客户端可以正常拿到413错误提示,不会出现连接重置问题

maxSwallowSize就是控制Tomcat最多愿意接收多少字节多余请求体的阈值,默认值为2MB。如果你上传的文件超过2MB,触发大小限制后待接收的剩余数据超过了2MB阈值,Tomcat就会选择直接断开连接,进而触发报错。

配置建议

  • Spring Boot 2.x及以上版本可直接在配置文件中设置:server.tomcat.max-swallow-size=100MB
  • 建议配置值略大于你设置的最大允许上传文件大小即可,比如允许最大上传100MB文件,就将该参数设为101MB左右,既可以覆盖所有合法请求的异常场景,也不会额外浪费服务器资源
  • 不建议盲目设置为-1(无限制),可能被恶意攻击利用,通过持续发送超大请求占满服务器带宽

内容的提问来源于stack exchange,提问作者Héctor Valls

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:45:04