原因不明的Node.js 504s

时间:2015-04-09 17:41:42

标签: node.js express nginx redis http-status-code-504

我们使用Express(4.0.0)运行Node(v0.10.38),通过nginx(1.2.1)代理,通常效果很好。然而,最近我们改用了新的服务器设置。现在,在启动服务器大约30分钟后,服务器开始返回504s(网关超时)。直接从服务器访问节点(绕过nginx)也会超时。我们经常从redis中获得一系列ETIMEDOUT错误,但是从服务器连接到redis服务器可以从命令行工作。此外,即使在redis错误出现之前,服务器也开始返回504s。无论如何,在将我们的redis中间件(connect-redis更新到最新版本后,这些错误已停止,但504仍然发生。但是,在我们的代码中禁用与redis的连接10小时后,没有504发生。我们已经尝试定期发送redis ping以防止错误,相信这是原因,但504s继续。当没有连接到redis时,服务器不会504,所以很可能以某种方式绑定到redis。还有什么我们可以尝试的吗?

很抱歉,如果没有多少工作要做。我们也没有这么多,并且渴望尽快解决这个问题。如果还需要更多细节,我可以更新问题。谢谢。

1 个答案:

答案 0 :(得分:0)

仍然不知道根本原因,但我们最终通过每分钟ping Redis来解决这个问题,这样连接就不会被杀死。