断开的管道java.io.IOException: Broken pipe

问题原因:

客户端请求在一分钟后,服务器处理逻辑还未完成,客户端连接被断开,返回504,服务端报java.io.IOException: Broken pipe。这个结果符合预期,说明了nginx默认超时时间是60s,超过60s,连接会被断开。

解决方法:

我们需要解决这个问题,就需要设置nginx超时时间了,这里我们将超时时间设置为120s,这个值可以灵活设置,就是不让他在默认60秒断开链接。

1.服务器基于linux系统环境,找到对应Nginx的配置文件,vim编辑nginx.conf

修改Nginx配置的四个时间配置(连接超时时间、连接超时时间、代理传送超时时间、传送超时时间)

proxy_connect_timeout 120;
后端服务器连接的超时时间_发起握手等候响应超时时间
proxy_read_timeout 120;
连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)
proxy_send_timeout 120;
后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
send_timeout 120;
服务端向客户端传输数据的超时时间。

2.修改完后重启nginx服务,让配置文件参数生效。

nginx -s reload

版权声明:本文为qq_27608711原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。