Nginx: recv() failed (104: connection reset by peer) 问题排查

recv() failed (104: connection reset by peer) 问题排查

最近项目中通过Nginx反向代理nodejs(采用nestjs框架)服务,压测过程中概率性出现502 Bad Gateway,出现概率较低,大概在0.005%左右,查看日志具体报错信息为recv() failed (104: Connection reset by peer) while reading response header from upstream,通过查找资料,了解到该报错的直接原因就是:

nodejs服务已经断开了连接,但是未通知到Nginx,Nginx还在该连接上收发数据,最终导致了该报错。

考虑到在Nginx中我们配置了打开与nodejs server的长连接,即:

proxy_http_version 1.1;
proxy_set_header Connection "";

我们先从长连接相关的设置入手查找问题,Nginx常用的几个影响长连接的参数设置有:keepalive_timeoutkeepalive_requestskeepalive

  • 1)keepalive_timeout: 设置客户端的长连接超时时间,如果超过这个时间客户端没有发起请求,则Nginx服务器会主动关闭长连接,Nginx默认的keepalive_timeout 75s;。有些浏览器最多只保持 60 秒,所以我

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值