无法解释 Node.js 504s
Unexplained Node.js 504s
我们 运行 节点 (v0.10.38) 和 Express (4.0.0),通过 nginx (1.2.1) 代理,通常效果很好 .但是,最近我们切换到新的服务器设置。现在,在启动服务器大约 30 分钟后,服务器开始返回 504s(网关超时)。从服务器直接访问Node(绕过nginx)也超时。每隔一段时间,我们就会收到一系列来自 redis 的 ETIMEDOUT 错误,但是从服务器连接到 redis 服务器是通过命令行进行的。此外,服务器甚至在 redis 错误出现之前就开始返回 504。无论如何,将我们的redis中间件(connect-redis
)更新到最新版本后,这些错误停止了,但504s仍然出现。但是,在我们的代码中禁用与redis的连接10小时后,没有出现504。我们已经尝试定期发送 redis ping 以防止错误,认为这是原因,但 504s 继续。当不连接到 redis 时,服务器不会 504,因此它可能以某种方式绑定到 redis。还有什么我们可以尝试的吗?
抱歉,如果没有太多工作要做。我们也没有那么多,急于尽快解决这个问题。如果需要更多细节,我可以更新问题。谢谢。
仍然不知道根本原因,但我们最终通过每分钟 ping Redis 来解决这个问题,这样连接就不会被终止。
我们 运行 节点 (v0.10.38) 和 Express (4.0.0),通过 nginx (1.2.1) 代理,通常效果很好 .但是,最近我们切换到新的服务器设置。现在,在启动服务器大约 30 分钟后,服务器开始返回 504s(网关超时)。从服务器直接访问Node(绕过nginx)也超时。每隔一段时间,我们就会收到一系列来自 redis 的 ETIMEDOUT 错误,但是从服务器连接到 redis 服务器是通过命令行进行的。此外,服务器甚至在 redis 错误出现之前就开始返回 504。无论如何,将我们的redis中间件(connect-redis
)更新到最新版本后,这些错误停止了,但504s仍然出现。但是,在我们的代码中禁用与redis的连接10小时后,没有出现504。我们已经尝试定期发送 redis ping 以防止错误,认为这是原因,但 504s 继续。当不连接到 redis 时,服务器不会 504,因此它可能以某种方式绑定到 redis。还有什么我们可以尝试的吗?
抱歉,如果没有太多工作要做。我们也没有那么多,急于尽快解决这个问题。如果需要更多细节,我可以更新问题。谢谢。
仍然不知道根本原因,但我们最终通过每分钟 ping Redis 来解决这个问题,这样连接就不会被终止。