有关 java.io.IOException: Connection reset by peer 解决问题方法之一

有很多大佬已经终结出现这个错误的原因有一下几种

1. 服务器在接受处理用户请求时,自身的cpu、io、内存、线程等资源都是有最大限制的。当并发请求超过服务器的承载量时,服务器会停掉一些请求。(但是要注意如果实际的并发数量没有超过服务器的承载量,可能中了木马病毒问题导致的。这个时候需要分析了)。
2. 客户端关闭了浏览器,但是服务端还是继续发送数据。
3. 浏览器端按了Stop。(ps:有的文档说浏览器弹框阻止也类似stop情况,本人没有亲自测试。可以参考:这篇文章 https://www.cnblogs.com/panxuejun/p/7160148.html)。
上面两种都是客户端造成的,但是因为服务端在进行读写,依然会记录日志的,如果频繁发生,也会造成困扰。可以区分日志进行捕获,少量记录。(一般来说则上面3中情况出现的频率很低)
4. 防火墙/nginx影响了。

    一种是他们都设置了超时机制,超过了会关闭这个TCP会话。这个可以通过重新定义心跳机制,进行会话维护。
    一种是设置防高频策略。我的就是这种情况。防火墙DDos攻击常见防御方法

我的问题就是出在 4 上 ,nginx配置

nginx的buffer太小,timeout太小

调整nginx配置

                proxy_connect_timeout 900;
                proxy_read_timeout 6000;
                proxy_send_timeout 6000;
                proxy_buffer_size 10k;
                proxy_buffers 256 10k;
                proxy_busy_buffers_size 64k;
                client_max_body_size 60m;
                client_body_buffer_size 256k;

调节到合适时间即可

更全面详细的 或者还是满足不了的可以看 这个大佬的博客

https://www.cnblogs.com/crazymakercircle/p/14001467.html

猜你喜欢

转载自blog.csdn.net/sinat_37792529/article/details/132778853