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

Конфигурация перезагрузки Haproxy 1.5x без завершения сеансов уровня 7?

Ребята,

Я переместил одно из наших приложений SaaS с аппаратного балансировщика нагрузки coyote point на виртуальную машину, на которой запущен nginx + haproxy с сохранением хэша haproxy.

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

Вот конфигурация бэкэнда haproxy для HA-Proxy версии 1.5.4 2014/09/02

backend webapp
    balance hdr(X-Real-IP)
        hash-type consistent
        mode http
        server server1 192.168.10.50:8080 check port 8080
        server server2 192.168.10.53:8080 check port 8080
        server server3 192.168.10.55:8080 check port 8080
        server server4 192.168.10.62:8080 check port 8080 backup

Это большая проблема для нас, поскольку, когда мне нужно выполнить обслуживание определенного внутреннего сервера или добавить / удалить дополнительные серверы из пула серверной части, я не могу этого сделать, не повлияв на работу клиента с приложением.

Как я могу динамически вносить изменения в серверы в бэкэнде, не прерывая существующие сеансы в бэкэндах, которые я не изменяю, если Haproxy не будет корректно перезагружаться?

Если вы определяете одноранговый узел для сервера, даже если он только один и является локальным, на каждом soft restart haproxy, состояние должно быть реплицировано в новый процесс.

Документация