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 ของคุณ ฉันต้องทำการทดสอบเพื่อให้ได้ผลลัพธ์ ขอบคุณ.
Joe

1
เป็นไปได้ไหมที่จะใช้ web01 ออฟไลน์ด้วยตนเอง ไม่ได้ปิด web01 / ฆ่ากระบวนการเพียงทำเครื่องหมายเป็นลง
Limbo Peng

FYI: interค่าเริ่มต้นเป็น 2, fallค่าเริ่มต้นเป็น 2 และriseค่าเริ่มต้นเป็น 2 มีอยู่ที่นี่: haproxy.org/download/1.5/doc/configuration.txt
Joshua Pinter

5
-1 โซลูชันหยุดทำงานหลังจาก 31 ปีของเวลาทำงาน = P
Gaspa79

6

หากคุณมีเซิร์ฟเวอร์เพียงสองตัวและเซิร์ฟเวอร์สองเครื่องเท่านั้นคุณอาจใช้วีไอพีสำหรับบริการที่คุณจัดการผ่านเครื่องกระตุ้นหัวใจ / corosync เพื่อให้สามารถใช้งานได้อย่างมีประสิทธิภาพยิ่งขึ้น

เป็นไปได้ด้วย 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

อย่างไรก็ตามการทำเช่นนี้จะไม่บรรลุผลในส่วนที่สองของสิ่งที่คุณต้องการ: มันจะเริ่มใช้ A SA อีกครั้งทันทีที่กลับมา ฉันไม่แน่ใจว่ามีตัวเลือกให้ haproxy ทำงานในแบบที่คุณต้องการหรือไม่ อย่างน้อยฉันก็ไม่เคยใช้มัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.