HAProxy поддерживает изменение или вставку файла cookie, чтобы обеспечить постоянство сеанса с параметром cookie
.
В разделах с бэкэндом или прослушиванием добавьте следующее:
cookie COOKIENAME prefix
В этом примереизменить существующий файл cookie, добавив имя сервера в файл cookie с именем COOKIENAME
.Ваш клиент увидит что-то вроде server1~someotherdata
, но ваше приложение увидит только часть someotherdata
.Таким образом, вы можете использовать это на существующих куки.Кроме того, этот метод позволяет принудительно устанавливать постоянство сеанса только в том случае, если существует этот файл cookie, а это означает, что вы все равно можете равномерно распределять людей вокруг статических частей вашего сайта и применять липкость только при необходимости, но добавляя это имя файла cookie в сеанс.
Также назовите ваши серверы, чтобы ваши строки выглядели следующим образом:
server server1 1.2.3.4 cookie server1
Более подробно в руководстве по настройке HAProxy , также вы можете использовать appsession
параметр config.
После того, как вы это сделаете, вы можете выбрать свой собственный метод баланса из списка, я склонен использовать roundrobin
, но leastconn
может дать вам лучший баланс, когда липкие сессииУчтено.
Дополнительные сведения из документации, облегчающие поиск справочного раздела:
cookie <name> [ rewrite | insert | prefix ] [ indirect ] [ nocache ]
[ postonly ] [ preserve ] [ domain <domain> ]*
[ maxidle <idle> ] [ maxlife <life> ]
Enable cookie-based persistence in a backend.
May be used in sections : defaults | frontend | listen | backend
yes | no | yes | yes