서버가 다운 된 경우에만 HAProxy 스위치


13

SA와 SB의 두 서버가 있다고 가정 해 봅시다. 다음과 같이 작동하도록 HAProxy를 구성 할 수 있습니까?

모든 연결은 SA로 이동-> SA는 아래로 이동-> HAProxy는 SB 로의 모든 연결을 SB로 전환-> SB가 다운되지 않을 때까지-연결이 다시 연결 되어도 SA로 이동하지 않음-> SB 다운-> HAProxy는 SA로 전환 .

간단히 말하면 현재 서버가 다운 될 때만 HAProxy를 전환하고 싶습니다. HAProxy 이외의 sth를 사용해야합니까?

답변:


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 초 (10 초 간격으로 3 번 확인) 후 서버가 오프라인 상태가됩니다. web02가 온라인 상태가되어 모든 요청이 발생합니다.

web01이 복구되면 10 초 간격으로 99999999 점검 후 한 번만 온라인으로 돌아갑니다.


재미 있겠다. 귀하와 @Dennis 솔루션을 사용해 보겠습니다. 또한 일부 결과를 얻을 수 있도록 몇 가지 테스트를 수행해야합니다. 감사합니다.
Joe

1
web01을 수동으로 오프라인으로 전환 할 수 있습니까? web01을 종료하지 않고 프로세스를 종료하는 것만으로 종료로 표시 하시겠습니까?
Limbo Peng

참고 : inter기본값은 2s, fall기본값은 2 , 기본값은 2입니다 rise. 자세한 내용은 여기를 참조하십시오 : haproxy.org/download/1.5/doc/configuration.txt
Joshua Pinter

5
-1, 31 년 가동 시간 = P 이후에 솔루션 작동이 중지됨
Gaspa79

6

서버가 두 대이고 정확히 두 대 뿐인 경우 pacemaker / corosync를 통해 관리하는 서비스에 VIP를 사용하여 가용성을 높이는 것이 더 합리적 일 수 있습니다.

SB를 백업 서버로 표시하여 haproxy에서도 가능합니다. 그렇게하면 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

그러나 이것은 원하는 것의 두 번째 부분을 달성하지 못합니다. A SA가 다시 시작하자마자 다시 사용하기 시작합니다. haproxy가 원하는 방식으로 작동하도록하는 옵션이 있는지 확실하지 않습니다. 나는 적어도 그것을 사용한 적이 없다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.