HAProxy beralih hanya jika server down

13

Katakanlah saya memiliki 2 server - SA dan SB. Apakah mungkin untuk mengkonfigurasi HAProxy agar berfungsi seperti ini:

Semua koneksi ke SA -> SA turun -> HAProxy mengalihkan semua koneksi ke SB -> hingga SB tidak turun - tidak ada koneksi ke SA, bahkan jika sudah naik lagi -> SB down -> HAProxy beralih ke SA .. .

Secara singkat saya ingin HAProxy beralih hanya ketika server saat ini turun. Mungkin saya harus menggunakan sth selain HAProxy?

Joe
sumber

Jawaban:

22

Lihat konfigurasi ini:

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

Semua permintaan akan mencapai web01 secara default. web02 tidak akan digunakan. Jika web01 berhenti merespons, setelah 30 detik (3 memeriksa pada interval 10 detik) server akan dimatikan secara offline. web02 akan dibawa online dan semua permintaan akan menemukannya.

Jika web01 pulih, itu hanya akan dibawa kembali online setelah 99999999 memeriksa pada interval 10 detik berlalu - yang secara efektif tidak pernah.

chrskly
sumber
Itu terlihat menarik. Saya akan mencoba solusi Anda dan @Dennis. Saya juga harus melakukan beberapa tes sehingga saya bisa mendapatkan beberapa hasil. Terima kasih.
Joe
1
Apakah mungkin membuat web01 offline secara manual? Tidak mematikan web01 / mematikan prosesnya, cukup tandai itu mati?
Limbo Peng
FYI: interdefault ke 2s, falldefault ke 2, dan risedefault ke 2. Lebih banyak dapat ditemukan di sini: haproxy.org/download/1.5/doc/configuration.txt
Joshua Pinter
5
-1, solusi berhenti bekerja setelah 31 tahun uptime = P
Gaspa79
6

Jika Anda hanya memiliki dua, dan tepatnya dua server, mungkin lebih masuk akal untuk menggunakan vip untuk layanan yang Anda kelola melalui alat pacu jantung / corosync untuk membuatnya sangat tersedia.

Mungkin juga dengan haproxy, dengan menandai SB sebagai server cadangan. Dengan begitu itu hanya digunakan ketika SA tidak tersedia:

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

Namun, ini tidak mencapai bagian kedua dari apa yang Anda inginkan: itu akan mulai menggunakan SA lagi segera setelah itu kembali. Saya tidak yakin apakah ada opsi untuk membuat haproxy berperilaku seperti yang Anda inginkan. Setidaknya saya belum pernah menggunakannya.

Dennis Kaarsemaker
sumber