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

Выведите из строя внутренний сервер nginx HAProxy, если он не может подключиться к Unicorn

У меня есть балансировщик нагрузки, на котором запущен HAProxy с двумя внутренними серверами, на обоих запущен Nginx на Unicorn.

Если nginx выходит из строя на одном из этих ящиков, HAProxy снимает его с набора, и служба продолжает работать.

Если unicorn выходит из строя, nginx начинает обрабатывать 502 ошибки, и HAProxy с радостью перенаправляет их клиенту.

На мой взгляд, есть два возможных решения:

Ни то, ни другое я не могу понять, как это сделать

В Unicorn у вас должна быть страница "ping", которая отвечает "OK", если приложение запущено и работает нормально. Затем используйте эту страницу в качестве проверки работоспособности в haproxy с помощью http-check-expect.

Благодарим @ florin-asavoaie за то, что указали мне направление записи на этом. Вот полное описание:

У меня уже была страница json в / status, которая возвращала {"status": "up"}

Я добавил

option httpchk GET /status
http-check expect string up

На мой сервер в haproxy.cfg и перезапустил haproxy