Назад | Перейти на главную страницу

Nginx перестает обслуживать пассажирское приложение (503)

Я развертываю приложение rails через пассажира и nginx (с использованием сервера эластичного поиска, который работает на одном компьютере) в системе Ubuntu. Это отлично работает около двенадцати часов. Тогда только ответ сервера - это сообщение 503. Перезапуск nginx решает проблему.

Я уже много раз просмотрел логи rails / nginx / elasticsearch, но не смог найти никаких подсказок об этом «падении». Видны только некоторые общие ошибки маршрутизации.

Есть ли другое место, где я могу проверить? Как я могу эффективно отладить такое поведение?

После дальнейших исследований я смог решить проблему. После некоторого времени работы elasticsearch забирает себе все процессорное время, не оставляя процессорного времени для nginx / пассажира. Когда там накапливается достаточно запросов, nginx просто умирает.

Итак, проблема заключалась в elasticsearch. Я пробовал несколько конфигураций, но ни одна из них, похоже, ничего не меняла.

Следуя совету из сообщения здесь http://elasticsearch-users.115913.n3.nabble.com/, Я попытался запустить elasticsearch на JVM оракулов вместо openJDK. Это сработало. С тех пор система стабильна.

503 означает, что служба недоступна, обычно обслуживание или сервер не может ответить из-за перегрузки.

Предполагая, что все пакеты, связанные с развертыванием, обновлены и не предпринимаются попытки внешних (d) DoS-атак, устанавливает ли приложение / elasticsearch много внешних подключений? Попробуйте посмотреть netstat.