Chỉ chuyển đổi HAProxy trong trường hợp máy chủ ngừng hoạt động


13

Giả sử tôi có 2 máy chủ - SA và SB. Có thể cấu hình HAProxy để hoạt động như thế này không:

Tất cả các kết nối chuyển đến SA -> SA ngừng hoạt động -> HAProxy chuyển tất cả các kết nối sang SB -> cho đến khi SB không tắt - không có kết nối nào chuyển sang SA, ngay cả khi nó hoạt động trở lại -> SB xuống -> HAProxy chuyển sang SA .. .

Tóm lại, tôi muốn HAProxy chỉ chuyển đổi khi máy chủ hiện tại ngừng hoạt động. Có lẽ tôi nên sử dụng sth khác hơn HAProxy?

Câu trả lời:


22

Kiểm tra cấu hình này:

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

Tất cả các yêu cầu sẽ đạt web01 theo mặc định. web02 sẽ không được sử dụng. Nếu web01 ngừng phản hồi, sau 30 giây (3 lần kiểm tra trong khoảng thời gian 10 giây), máy chủ sẽ được đưa ra ngoại tuyến. web02 sẽ được đưa trực tuyến và tất cả các yêu cầu sẽ đạt được.

Nếu web01 phục hồi, nó sẽ chỉ được đưa trực tuyến trở lại sau khi 99999999 kiểm tra trong khoảng thời gian 10 giây trôi qua - điều này thực sự không bao giờ.


Điều đó có vẻ thú vị. Tôi sẽ thử giải pháp của bạn và @Dennis. Tôi cũng phải thực hiện một số xét nghiệm để tôi có thể nhận được một số kết quả. Cảm ơn bạn.
Joe

1
Có thể lấy web01 ngoại tuyến bằng tay không? Không tắt web01 / giết quá trình của nó, chỉ cần đánh dấu nó là xuống?
Limbo Peng

FYI: intermặc định là 2 giây, fallmặc định là 2 và risemặc định là 2. Có thể tìm thấy nhiều hơn ở đây: haproxy.org/doad/1.5/doc/configuration.txt
Joshua Pinter

5
-1, giải pháp ngừng hoạt động sau 31 năm hoạt động = P
Gaspa79 17/07/17

6

Nếu bạn chỉ có hai và chính xác hai máy chủ, có thể có ý nghĩa hơn khi sử dụng vip cho dịch vụ mà bạn quản lý thông qua máy điều hòa nhịp tim / corosync để làm cho nó khả dụng cao.

Cũng có thể với haproxy, bằng cách đánh dấu SB là máy chủ dự phòng. Theo cách đó, nó chỉ được sử dụng khi SA không có sẵn:

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

Tuy nhiên, điều này không hoàn thành phần hai của những gì bạn muốn: nó sẽ bắt đầu sử dụng lại A SA ngay khi nó quay trở lại. Tôi không chắc liệu có một tùy chọn để làm cho haproxy hoạt động theo cách bạn muốn hay không. Ít nhất là tôi chưa bao giờ sử dụng nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.