节点应用程序上游过早关闭连接,同时读取响应

时间:2019-02-22 13:38:03

标签: javascript node.js amazon-web-services nginx

有关于此的手册问题/答案,但是我的问题尚未从那里的任何解决方案中得到解决,所以我在这里写。

我的节点应用程序在我的开发环境上运行良好,但是在我请求一些api时会在prod上运行,这会导致502错误。

在检查日志时,我遇到了这个问题

  

2019/02/22 12:16:57 [错误] 2575#0:* 2上游提前关闭   从客户端读取响应标头时进行连接:   172.31.85.97,服务器:,请求:“ GET / api // m2 / v1 / metrics_report?auth = asdsdffk HTTP / 1.1”,上游:   “ http://172.17.0.3:80/api/m2/v1/metrics_report?auth=asdsdffk”,主持人:   “”,引荐来源网址:“”

2 个答案:

答案 0 :(得分:2)

我认为来自nginx的错误表明服务器已关闭连接。在express应用程序中某些东西一定引起了此故障。您可以尝试增加nginx的超时来正确调试它-

location / {
    proxy_read_timeout 1000s;
    proxy_connect_timeout 1000s;
    ....
}

答案 1 :(得分:0)

就我而言,这是express配置错误。因此,在这里阅读和查找后,我终于想到了答案。设置httpServer超时,如下例所示:

var httpServer = app.listen(8000, () =>
   console.log('App is listening on port 8000.')
)

httpServer.setTimeout(1000)