Перемикач HAProxy лише у випадку відключення сервера


13

Скажімо, у мене є 2 сервери - SA і SB. Чи можливо налаштувати HAProxy таким чином:

Всі з'єднання переходять на SA -> SA йде вниз -> HAProxy перемикає всі з'єднання на SB ->, поки SB не знизиться - ніякі з'єднання не переходять на SA, навіть якщо воно знову вгору -> SB вниз -> HAProxy переходить на SA .. .

Якщо коротко, я хотів би, щоб HAProxy перемикався лише тоді, коли поточний сервер виходить з ладу. Можливо, я повинен використовувати інше, ніж HAProxy?

Відповіді:


22

Перевірте цю конфігурацію:

listen my-server 0.0.0.0:80
    balance roundrobin
    server web01 10.10.10.1:80 check inter 10s fall 3 rise 99999999
    server web02 10.10.10.2:80 check backup

Усі запити за замовчуванням звертаються до web01. web02 не буде використовуватися. Якщо web01 перестане реагувати, через 30 секунд (3 перевірки з інтервалом 10 секунд) сервер буде відключений в автономний режим. web02 буде представлений в Інтернеті, і всі запити будуть звернені.

Якщо web01 відновиться, він буде повернутийся в Інтернет лише після того, як пройде 99999999 перевірок з інтервалом 10 секунд - що фактично ніколи.


Це виглядає цікаво. Я спробую ваше та рішення @Dennis. Я також повинен зробити кілька тестів, щоб я міг отримати деякі результати. Дякую.
Джо

1
Чи можливо взяти web01 офлайн вручну? Не вимикаючи web01 / вбиваючи його процес, просто позначте його як відключений?
Лімбо Пен

FYI: interза замовчуванням до 2s, fallза замовчуванням до 2 та riseза замовчуванням до 2. Більше можна знайти тут: haproxy.org/download/1.5/doc/configuration.txt
Джошуа Пінтер

5
-1, розчин перестав працювати після 31 року роботи = P
Gaspa79

6

Якщо у вас є лише два, а саме два сервери, може бути доцільніше використовувати vip для послуги, якою ви керуєте за допомогою пейсмейкера / коросинхроніки, щоб зробити її високодоступною.

Можна і з haproxy, позначивши SB як резервний сервер. Таким чином він використовується лише тоді, коли SA недоступний:

backend mybackend
mode            http
balance         roundrobin
option          httpchk /test.html
server          server1.example.com server1.example.com:80 weight 1 check port 80 inter 5s rise 3 fall 2
server          server2.example.com server2.example.com:80 backup weight 1 check port 80 inter 5s rise 3 fall 2

Однак це не є частиною другою того, що ви хочете: він знову почне використовувати СА, як тільки повернеться. Я не впевнений, чи є варіант змусити хапрокси вести себе так, як вам хочеться. Я, принаймні, ніколи його не використовував.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.