文件上传下载遇到的ClientAbortException: java.io.IOException: Connection reset by peer错误

生产环境遇到这个错误

org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer

博主花费了一天的时间去解决问题,查日志,各种找资料看,最终找到方案解决,废话不多说直接说有价值的东西

背景:由于文件预览的时候出现了这个问题,小文件没有问题,大文件就报错

可能出现的原因
  • 服务器在接受处理用户请求时,自身的cpu、io、内存、线程等资源都是有最大限制的。当并发请求超过服务器的承载量时,服务器会停掉一些请求。(但是要注意如果实际的并发数量没有超过服务器的承载量,可能中了木马病毒问题导致的。这个时候需要分析了)
  • 客户端关闭了浏览器,但是服务端还是继续发送数据。
  • 浏览器端按了Stop。
  • 防火墙/nginx影响了。
    • 一种是他们都设置了超时机制,超过了会关闭这个TCP会话。这个可以通过重新定义心跳机制,进行会话维护。
    • 一种是设置防高频策略。我的就是这种情况

以上是在网上搜的资料,这些情况说实话都不是特别有用,完全说的废话,说不到重点,最后自己找到了解决方案

由于正常spring中上传下载文件配置默认位50M,意思就是说上传50M以下都没有问题,但是我上传900K就出现了问题,最后找到一个帖子,说可能和Nginx有关系
  • NGINX的配置, 发现都是默认的, 了解到 proxy_buffer_size 默认大小是 512k, 超过就会报错,Connection reset by peer, 应该是 Tomcat 的http 连接 超出了nginx 的大小限制 被强行 reset, 因而出现下载失败的问题

附spring默认文件配置代码

# 前缀prefix
spring.thymeleaf.prefix=classpath:templates/
# 后缀suffix
spring.thymeleaf.suffix=.html
# charset=<encoding> is added
spring.thymeleaf.encoding=UTF-8
#content-type
spring.thymeleaf.content-type=text/html
#set to false for hot refresh
spring.thymeleaf.cache=false
spring.thymeleaf.mode=LEGACYHTML5
spring.http.multipart.maxFileSize=50Mb
spring.http.multipart.maxRequestSize=500Mb
解决方案
  • 修改nginx的缓存配置,或者关闭缓存,完美解决
如果您忘记了 Mobaxterm 的主密码,这可能会导致您无法访问由密码保护的文件和目录,或者在使用其他功能时遇到问题。以下是您可以尝试的一些方法。 1. 重新安装 Mobaxterm:如果您忘记了主密码,并且没有重要的数据需要保留,最简单的方法可能是卸载 Mobaxterm 并重新安装。这将重置所有设置,包括密码。 2. 重置主密码:如果您不想重新安装 Mobaxterm,并且您有管理员权限,您可以尝试使用以下步骤重置主密码。 a. 在 Mobaxterm 中单击 "Settings"(设置) > "Master password"(主密码)。 b. 在主密码窗口中,单击 "Reset"(重置)。 c. 您将被要求输入您的 Windows 登录密码,然后单击 "OK"(确定)。 d. Mobaxterm 将提示您输入新的主密码。 请注意,这将重置所有使用主密码保护的文件和目录。请确保备份所有重要的数据。 3. 使用备份文件:如果您已创建了 Mobaxterm 的备份文件(.mobaxterm),您可以使用该文件来恢复主密码。 a. 在 Mobaxterm 中单击 "Settings" > "Configuration settings"(配置设置)。 b. 单击 "Backup and restore"(备份和恢复)。 c. 单击 "Restore settings"(恢复设置)并选择您的备份文件。 d. 在恢复设置向导的 "Security"(安全)选项卡中,单击 "Change master password"(更改主密码)。 e. 输入新的主密码并单击 "OK"。 请注意,这将使用备份文件恢复所有设置,包括主密码。这也将覆盖您的当前设置。 总之,如果您忘记了 Mobaxterm 的主密码,您可以尝试重新安装它,重置密码或使用备份文件来恢复密码。请记住,在执行任何操作之前,请备份所有重要数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值