Поддержка веб-сокетов с балансировщиком нагрузки ZXTM (менеджер трафика zeus / stingray)

Я искал в интернете информацию о настройке ZXTM для правильной балансировки нагрузки подключений через веб-сокеты. (а также общая информация для этой задачи будет полезна)

Кажется, что, поскольку это балансировщик нагрузки уровня 7, он запутывается, когда клиенты отправляют заголовок обновления, необходимый для установления соединения через веб-сокет. Я полагаю, что смогу исправить это, используя правила Traffic Script, но не уверен, с чего начать.

Единственная информация, которую я могу найти, - как это сделать с помощью nginx, используя специальный модуль tcp proxy, а также есть некоторая информация о том, как это сделать с HA Proxy. К сожалению, на данный момент это не вариант.

Если у кого-то есть какая-либо информация, общая или конкретная о том, как настроить балансировщик нагрузки уровня 7 для правильной обработки веб-сокетов, это было бы замечательно.

1 ответ

Решение

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

Проблема заключается в том, что когда ZXTM установлен в режиме "HTTP" для виртуального сервера, он вообще не отвечает на заголовок обновления.

Чтобы веб-сокеты работали, вы должны изменить режим виртуального сервера на "Общий поток".

Тогда балансировщик нагрузки будет относиться к нему больше как к обычному TCP-соединению, и все работает хорошо.

Есть одно серьезное ограничение: если вы используете правила сценариев трафика, вы больше не сможете использовать те, которые начинаются с http. Так, например, http.setHeader или что-то в этом роде больше не будет работать, так как балансировщик нагрузки больше не рассматривает базовые соединения как нормальный http.

Надеюсь, это поможет кому-то! ура

Другие вопросы по тегам