alibaba / tengine

A distribution of Nginx with some advanced features
https://tengine.taobao.org
BSD 2-Clause "Simplified" License
12.81k stars 2.52k forks source link

求助,tcp负载均衡产生大量[error] 1428#0: *934814 recv() failed (104: Connection reset by peer) 应该如何解决? #1404

Open chinakimi opened 4 years ago

chinakimi commented 4 years ago

2019/11/25 16:44:30 [error] 1428#0: *934814 recv() failed (104: Connection reset by peer) while proxying and reading from upstream, client: 11.223.235.220, server: 0.0.0.0:8805, upstream: "11.99.138.240:8706", bytes from/to client:46/16, bytes from/to upstream:16/46

ljluestc commented 1 year ago

这个错误日志表明在Nginx代理过程中出现了问题。具体来说,recv() failed (104: Connection reset by peer) 表示与上游服务器的连接被远程终止。以下是一些可能的解决方案和检查点:

  1. 上游服务器是否正常运行: 确保上游服务器(11.99.138.240:8706)正在正常运行并且可以响应请求。尝试从Nginx所在的机器上使用工具(如curl或浏览器)访问上游服务器,以确认服务器是否可达。

  2. 防火墙和网络问题: 检查可能影响连接的防火墙设置,确保Nginx服务器和上游服务器之间的网络连接没有问题。有时,网络问题或防火墙配置可能导致连接重置。

  3. 负载均衡设置: 如果你正在使用负载均衡配置,请确保所有上游服务器都正常工作,并且Nginx能够正确地将请求分发到它们。

  4. 代理超时设置: 检查Nginx代理的超时设置。如果上游服务器响应较慢,可能会触发超时,导致连接被终止。你可以通过调整proxy_read_timeout等指令来解决。

  5. 上游服务器日志: 查看上游服务器的日志,以了解是否有任何错误或异常,这可能会提供更多关于问题的线索。

  6. 资源限制: 确保Nginx和上游服务器的资源限制没有导致问题。例如,内存不足可能会导致连接问题。

如果你尝试了以上的解决方案但问题仍然存在,你可能需要进一步的诊断和调试。在一些复杂的情况下,可能需要参考具体的网络架构和应用程序设置来找到问题的根本原因。