AWS上的节点应用返回503

时间:2016-02-22 19:32:20

标签: node.js amazon-web-services

我有一个Hello World节点应用程序:

var express = require('express');
var app = express();

app.get('/', function (req, res) {
    console.log('in the get /');
    res.send('Hello World!');
});

app.listen(8080, function () {
    console.log('Example app listening on port 8080!');
});

我已将此推送到我的EC2实例。我转到我的网址,页面是黑色的。我看到503正在回来。我看到实时节点日志和应用程序进入app.get,因为我反复看到'在get /'。

我有2个实例。第一个是运行Nginx,并且对example.net的请求被重定向到https://www.example.net。我还有一个Load Balancer监听器,它将请求发送到www.example.net并将它们引导到我的Node实例。

顺便说一句,每隔几秒我就会看到一个新的'在get /'行。所以我的应用程序反复受到上帝知道在哪里。这可能与获取503(表示服务器正忙)有关吗?注意:昨天工作正常。

修改 该应用程序突然开始返回“Hello World”。然后我重新启动了应用程序 - 没有更改代码 - 我又回来了503'

1 个答案:

答案 0 :(得分:0)

ELB检测到您的实例运行状况不佳,因为它在重启期间会出现故障(不健康阈值)。然后,它必须再次通过健康检查一定次数才能恢复健康检查(健康阈值)。您可以在ELB settings中配置所有这些内容。

如果您的池中只有一个实例,我会降低不健康阈值。并且可能也会减少HealthCheck Interval。