tomcat 附件导出出现:java.net.SocketException: Connection reset异常分析与解决

tomcat 附件导出出现:java.net.SocketException: Connection reset异常分析与解决

前言

之前阿里云服务器上有出现过,过期被停用过的情况,后来恢复后启动服务后就没有太注意过,直到今天过来用一下系统导出功能,所以出现了如下问题:

org.apache.catalina.connector.ClientAbortException: java.net.SocketException: Connection reset

原因分析

经过网上一翻查询大概总结问题原因有如下两点:

  • 客户端取消了连接引起的
  • 服务器jvm 内存资源不足够?

看到这里,对于“客户端取消了连接引起的” 这个是可以直接排除的;对于“服务器jvm 内存资源不足够?” 这里不讨论它的可能性,我自己也特意检查了一下jvm 堆与非堆的内存使用情况发送并无异常,另外也对代码做了一翻检查也没有收获

最终确定问题

这里另外一个请求引起了我的注意,意外发在返回的内容被截断了???
这里我想到了使用了nginx ,是否是nginx 导致的?所以经过了一翻排查确认是nginx 引起的

  • nginx 将内容返回给客户端时如果内容过大缓冲大被用完会将数据临时缓存到: /var/lib/nginx/tmp/ 目录下,但此时nginx 权限有问题,所以导致了上面的问题

排查步骤如下

  • 看到 nginx 的 error log 在什么位置:

    vim /etc/nginx/nginx.conf
    
  • 检查异常日志

    vim /xxx/xxx/nginx_error.log
    

    nginx 错误日志,果然发现异常,
    open() “/var/lib/nginx/tmp/proxy/4/00/0000000004” failed (13: Permission denied) while reading upstream

  • 根据 “Permission denied” 提示看一下该目录下的权限:

    # 查看所属用户与权限:
    ll /var/lib/nginx/ -a
    
  • 授权:

    chmod -R u+rwx /var/lib/nginx/
    
  • 重启nginx

    systemctl restart nginx 
    

关于我

  • 关注不迷路,点赞走一波~ 转载请标注~
  • 公众号
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值