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

конфигурация восходящего потока nginx для переключения между двумя серверами

У меня устаревшее веб-приложение, оно иногда дает сбой. Кроме того, у него есть кеш приложения, находящийся в виртуальном пространстве самого приложения - он не может делиться данными кеша с другими экземплярами того же приложения, и я не могу вносить необходимые изменения.

Приложение работает нестабильно, иногда дает сбой и требует времени на восстановление. Я хочу запустить два экземпляра приложения, например A и B, а затем позволить nginx сделать все остальное. Я хочу:

После запуска A будет только основным сервером (даже если A и B работают и работают, все запросы должны поступать только на A!). Когда происходит сбой A, nginx должен переключаться только на B. Когда A восстанавливается, а B все еще работает, nginx должен ВСЕГДА продолжать использовать ТОЛЬКО B. То есть, пока B тоже не вылетит! После этого он должен снова переключиться на A и использовать его, даже если B восстановлен и снова доступен. То есть до тех пор, пока A не вылетит ... Ну, в общем, вы поняли =)

Директива "резервного копирования" кажется не такой, какой я хочу, и все другие варианты, кажется, просто регулируют метод распределения запросов между обоими вспомогательными серверами, без какого-либо способа фактически заблокировать запрос от того или другого временно (без причины "отключить" ).

Разве это невозможно из-за конфигурации только nginx, или я что-то потерял?

UPD: вот думаю попробовать поиграться с set_peer_down из модуля ngx_lua при сбоях (см. документацию здесь), но кажется комплексным решением простой проблемы ... Разве нельзя обойтись без какого-то программного решения?