0

У меня есть приложение RoR, работающее на эластичном бобовом стебле. Я иногда видел 403 ошибки от Пассажира на некоторое время. В большинстве случаев работает 1 сервер, но это увеличивается до 3 или 4 экземпляров в периоды занятости в течение дня.403 ошибки в балансировке нагрузки при загрузке новых экземпляров

stickeyness сессии не включен

Я заметил, что, когда новый сервер запущен ELB посылает запросы к ним перед расслоением окончания установки.

Если я ssh для вновь запущенного сервера, я вижу в/var/app/current /, что приложение еще не установлено, и если я запустил вершину, то выглядит, как запущен пакет и компилирует вещи с помощью cc1 и т. Д.
/var/app/support/log/passenger.log показывает, что просит, чтобы только URL в моих рельсах приложения в настоящее время получили и ответил на с 404. не удивительно, потому что приложение не существует еще

После 5- 10 минут все компиляции завершены, и файлы приложений появляются в/var/app/current, и все хорошо.

Это не похоже на меня. Как настроить приложение ELB/my rails, чтобы ELB мог определить, когда он будет готов для получения запросов?

ответ

4

Я нашел ответ на этот вопрос. Не было установленного набора проверки работоспособности приложения. В этом случае ELB пингует экземпляр, чтобы узнать, является ли он здоровым, т. Е. Проверяет, что он загружен, а не работает ли рельсы. Установка URL-адреса проверки работоспособности на «/ login /» исправила его для меня, потому что это дает 404 до тех пор, пока рельсы не будут запущены и 200 позже.

Эластичный бобовый шлейф требует 2 правильных ответов, прежде чем он посчитает, что случай здоров. Он проверяет экземпляр каждые 5 минут. Это означает, что для запуска запросов на обслуживание может потребоваться некоторое время. т. е. требуется время загрузки + ожидание следующего опроса от elb + 5 минут, прежде чем он увидит какой-либо реальный трафик.

+0

Спасибо - это была большая помощь. – scolestock

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