AWS Nginx“从上游读取响应标头时上游过早关闭连接”
Posted
技术标签:
【中文标题】AWS Nginx“从上游读取响应标头时上游过早关闭连接”【英文标题】:AWS Nginx "upstream prematurely closed connection while reading response header from upstream" 【发布时间】:2018-09-21 13:25:24 【问题描述】:我使用 AWS:ELB(经典)→ EC2(使用 Node.js)
问题。 有时某些请求会返回 502 Bad Gateway 错误。在 nginx 错误日志中,我看到“从上游读取响应标头时上游过早关闭连接”错误。
不是超时问题。 此错误发生在 Node.js 应用程序处理此请求的同一秒。因此,由于响应时间长,这不是超时问题。
客户端不会中断连接。 我尝试以编程方式发出请求(以确保客户端不会中断连接)。有时也会出现同样的错误,而测试客户端应用程序从 Ngnix 收到 502 错误的响应。
谁可以关闭连接,为什么? 如何解决这个问题?
【问题讨论】:
你试过这个设置proxy_ignore_client_abort on;
吗?
运气好吗?我面临同样的问题,立即得到错误
【参考方案1】:
谁可以关闭连接,为什么? Nginx 的该错误表明连接已被您的上游服务器关闭(即“node.js”) 您可以通过为代理设置更高的超时值来解决此问题:
location /
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
proxy_pass http://localhost:3000;
文档:https://nginx.org/en/docs/http/ngx_http_proxy_module.html
【讨论】:
以上是关于AWS Nginx“从上游读取响应标头时上游过早关闭连接”的主要内容,如果未能解决你的问题,请参考以下文章
我是不是需要 AWS ECS 中带有 nginx 的 AWS 负载均衡器?
AWS 部署 NGINX 连接被拒绝用于 Node.JS 项目
无法使用 Forge、nginx 和 AWS 连接到 Laravel Websocket