HAProxy anahtarı yalnızca sunucu kapalı olduğunda


13

Diyelim ki 2 sunucum var - SA ve SB. HAProxy'yi şu şekilde çalışacak şekilde yapılandırmak mümkün mü:

Tüm bağlantılar SA'ya gider -> SA düşer -> HAProxy, SB kapatılıncaya kadar tüm bağlantıları SB -> 'ya geçirir - yeniden kurulsa bile hiçbir bağlantı SA'ya gitmez -> SB aşağı -> HAProxy SA'ya geçer. .

Kısacası HAProxy'nin sadece mevcut sunucu çöktüğünde değişmesini istiyorum. Belki HAProxy'den başka sth kullanmalıyım?

Yanıtlar:


22

Bu yapılandırmaya göz atın:

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üm istekler varsayılan olarak web01'e ulaşacaktır. web02 kullanılmayacak. Web01 yanıt vermeyi durdurursa, 30 saniye sonra (10 saniyelik aralıklarla 3 kontrol) sunucu çevrimdışı duruma getirilir. web02 çevrimiçi duruma getirilecek ve tüm istekler bu siteye ulaşacak.

Web01 iyileşirse, yalnızca 99999999 10 saniyelik aralıklarla kontrol edildikten sonra tekrar etkin hale getirilir - bu hiçbir zaman etkili olmaz.


İlginç görünüyor. Sizin ve @Dennis çözümünüzü deneyeceğim. Bazı sonuçlar da alabilmem için bazı testler yapmam gerekiyor. Teşekkür ederim.
Joe

1
Web01'i manuel olarak çevrimdışına almak mümkün mü? Web01'i kapatmamak / sürecini öldürmemek, sadece işaretlemek mi?
Limbo Peng

Bilginize: intervarsayılan değer 2s, fallvarsayılanlar 2 ve risevarsayılanlar 2'dir. Daha fazlası burada bulunabilir: haproxy.org/download/1.5/doc/configuration.txt
Joshua Pinter

5
-1, çözüm 31 yıl kesintisiz çalıştıktan sonra durdu = P
Gaspa79

6

Yalnızca iki ve tam olarak iki sunucunuz varsa, kalp pili / corosync aracılığıyla yönettiğiniz hizmet için yüksek oranda kullanılabilir olmasını sağlamak için bir vip kullanmak daha mantıklı olabilir.

SB'yi yedekleme sunucusu olarak işaretleyerek haproxy ile de mümkündür. Bu şekilde yalnızca SA kullanılamadığında kullanılır:

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

Bununla birlikte, bu, istediğiniz şeyin ikinci bölümünü gerçekleştirmez: geri döndüğü anda A SA'yı tekrar kullanmaya başlayacaktır. Haproxy'nin istediğiniz gibi davranması için bir seçenek olup olmadığından emin değilim. En azından hiç kullanmadım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.