Поддержка веб-сокетов с балансировщиком нагрузки ZXTM (менеджер трафика zeus / stingray)
Я искал в интернете информацию о настройке ZXTM для правильной балансировки нагрузки подключений через веб-сокеты. (а также общая информация для этой задачи будет полезна)
Кажется, что, поскольку это балансировщик нагрузки уровня 7, он запутывается, когда клиенты отправляют заголовок обновления, необходимый для установления соединения через веб-сокет. Я полагаю, что смогу исправить это, используя правила Traffic Script, но не уверен, с чего начать.
Единственная информация, которую я могу найти, - как это сделать с помощью nginx, используя специальный модуль tcp proxy, а также есть некоторая информация о том, как это сделать с HA Proxy. К сожалению, на данный момент это не вариант.
Если у кого-то есть какая-либо информация, общая или конкретная о том, как настроить балансировщик нагрузки уровня 7 для правильной обработки веб-сокетов, это было бы замечательно.
1 ответ
После долгих поисков я добился прогресса в этом вопросе. (к сожалению, поддержка русла реки была не очень полезной, хотя они и пытались быть полезными).
Проблема заключается в том, что когда ZXTM установлен в режиме "HTTP" для виртуального сервера, он вообще не отвечает на заголовок обновления.
Чтобы веб-сокеты работали, вы должны изменить режим виртуального сервера на "Общий поток".
Тогда балансировщик нагрузки будет относиться к нему больше как к обычному TCP-соединению, и все работает хорошо.
Есть одно серьезное ограничение: если вы используете правила сценариев трафика, вы больше не сможете использовать те, которые начинаются с http. Так, например, http.setHeader или что-то в этом роде больше не будет работать, так как балансировщик нагрузки больше не рассматривает базовые соединения как нормальный http.
Надеюсь, это поможет кому-то! ура