[alibaba/tengine]使用健康监测模块报错: recv() failed (104: Connection reset by peer)

2024-07-10 535 views
1

我的配置

upstream 18server {
    server 192.168.0.18:80;
    check interval=5000 rise=2 fall=3 timeout=3000 default_down=false type=tcp;
    check_keepalive_requests 100;
}

error_log中报错信息:

[error] 123416#0: recv() failed (104: Connection reset by peer)

不知道为什么会报这个错误。

回答

1

tengine中recv的连接异常断开,导致recv时候报错。 根据你的日志并不能定位此recv的连接是前端客户端访问连接还是后端upstream check的回源连接。

6

@chobits 你好 在测试环境中也重现了这个现象,前端没有客户端访问的,只有在配置了upstream check后才会出现这个日志,我的后端服务器是Windows Server 2008,并在后端服务器抓包,如下图 image 每当后端返回RST的时候就会产生日志。

5

@Aegack 问题你已经找到了:)关键是为什么后端返回RST而不是FIN等正常断开,这个需要你自己确认了。 对于这种recv连接异常,nginx是会打error log的

1

关闭,如有疑问可重新打开