2016-02-22 2 views
0

У меня есть приложение Hello World узла:Node приложение на AWS возвращения 503

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. Я иду на свой url, и страница черная. Я вижу, что 503 возвращается. Я вижу записи в реальном времени и приложение входит в app.get, потому что я вижу «в get /» несколько раз.

У меня есть 2 экземпляра. Первый запускает Nginx, а запросы example.net перенаправляются на https://www.example.net. У меня также есть прослушивание балансировки нагрузки, которое принимает запросы на www.example.net и направляет их на экземпляр Node.

Кстати, каждые несколько секунд я вижу новую строку «в линии get /». Так что мое приложение неоднократно ударяется от Бога, знает где. Может ли это быть что-то связанное с получением 503 (что означает, что сервер занят)? Примечание: вчера это сработало.

EDIT Приложение неожиданно начало возвращать «Hello World». Затем я перезапустил приложение - не делал никаких изменений кода - и им снова стало 503 снова

+0

Вы находитесь за балансиром нагрузки? Повторяющиеся удары могут быть сделаны из проверки работоспособности. –

+0

да я. ах нормально, должно быть это – Mark

+0

не должен флаг проверки работоспособности? его полностью случайный, когда я получаю 503, и когда я не делаю – Mark

ответ

0

ELB обнаруживает, что ваш экземпляр нездоровый, потому что он не работает во время перезапуска (нездоровый порог). Затем он должен пройти проверку работоспособности определенное количество раз, прежде чем он снова станет здоровым (Здоровый порог). Вы можете настроить все это в ELB settings.

Я бы уменьшил Нездоровый порог, если у вас есть только один экземпляр в вашем бассейне. И, возможно, также уменьшите интервал HealthCheck.

Смежные вопросы