recv() failed (104: Connection reset by peer)

Nginx 代理 Gateway recv() failed (104: Connection reset by peer)

这里写问题描述
截图

平常同时在线3w + 左右的流量

2026/01/06 11:01:03 [error] 31950#0: *36858852 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: 180.213.250.32, server: imxxxx, request: "GET /wss HTTP/1.1", upstream: "http://10.30.1.77:23456/wss", host: "
这个原因一般是什么?
一天800次左右日志

199 1 1
1个回答

Connection reset by peer 有以下原因:

  • gateway进程发生了退出情况,例如restart重启或者其它错误
  • 没装event扩展或者linux内核没优化或者没生效,导致无法接受更多连接
  • 连接被gateway强行关闭,例如数据不符合websocket协议或者业务(例如发起的是普通http请求),这种可以无视
  • 业务在onConnect onWebsocketConnect 回调时基于某种原因关闭了连接导致

排查:
10.*.7.77 10.*.6.4 2台服务器贴下 php start.php status 结果,主要看gateway进程是否有退出情况还有 event扩展安装情况

gateway有多少台服务器?如果gateway服务器超过2台,但是报错的只有10.*.7.77 10.*.6.4 可能是这两台服务器的event扩展没装好或者linux内核优化没生效或者其它环境问题

最后
从日志看 错误日志客户端ip全部集中在 180.213.250.*47.106.*.*网段 ,可能是恶意扫描脚本在发起连接被gateway关闭或被系统拦截了。如果只有这两个少数ip受到影响,可以忽略不管。如果非要找出为啥只有这两个ip被拦截,需要抓包分析请求数据。

🔝