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

Может ли HAProxy прозрачно переподключить веб-сокет к другому внутреннему серверу?

Я новичок в HAProxy, поэтому у меня может быть очевидный ответ, но я не смог его найти.

Рассмотрим эту установку:

Клиент открывает соединение через веб-сокет с HAProxy, который выбирает веб-приложение с помощью циклического перебора, скажем, выбрано WebApp1. Соединение с веб-сокетом остается на WebApp1 и туннелируется через HAProxy.

Если WebApp1 выходит из строя, клиент получает отключение, повторно подключается, проходит через HAProxy, который теперь выбирает WebApp2, и соединение с веб-сокетом остается на WebApp2, туннелированном через HAProxy.

Это нормальная установка, верно?

Я хочу спросить, возможно ли, чтобы HAProxy оставил веб-сокет открытым вместе с клиентом, и когда WebApp1 выйдет из строя, прозрачно переместите этот конец соединения в WebApp2 без ведома клиента. Это возможно?

Нет, это невозможно, потому что новый сервер ничего не знает о состоянии предыдущего соединения. WebSocket не имеет состояния без состояния, как UDP или ØMQ. В этом случае клиент должен повторно подключиться.