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

HAProxy - очистить стик-таблицу из командной строки

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

Сценарий таков, что у меня есть 2 узла, s1 и s2. Я хочу, чтобы весь трафик шел на s1, если он не выходит из строя, когда он выходит из строя, я хочу, чтобы весь трафик шел на s2. Когда s1 снова станет здоровым, я не хочу автоматически маршрутизировать трафик обратно к нему, потому что некоторые записи будут созданы на s2, когда он был активен. Я хочу убедиться, что все данные были синхронизированы, прежде чем снова сделать s1 активным.

Я настраиваю HAProxy так:

backend bk_app
    stick-table type ip size 1 nopurge
    stick on dst
    option httpchk
    server s1 10.37.226.118:80 check
    server s2 10.37.226.113:80 check backup

Кажется, это работает, соединения продолжают идти к s2 даже после того, как s1 снова становится здоровым.

У меня вопрос - как мне очистить таблицу стикеров из командной строки, другими словами, как перенаправить трафик обратно на s1?

Я видел несколько советов, в которых говорится, что если я заставлю s2 выйти из строя, HAProxy перенаправит трафик обратно на s1. Кажется, это работает, но когда s2 снова становится здоровым, HAProxy снова направляет трафик обратно на s2, другими словами, таблица прилипаний все еще действует.

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

Вы можете использовать команды сокета для очистки таблицы, например, echo «clear table Abuse key 192.168.64.12» | socat unix-connect: /var/run/haproxy.stat stdio

Документация здесь: http://haproxy.tech-notes.net/9-2-unix-socket-commands/