ฉันใช้ HAProxy 1.4.18 กับการกำหนดค่าแบ็กเอนด์ต่อไปนี้
backend staging
option httpchk HEAD /check.txt HTTP/1.0
http-check disable-on-404
default-server error-limit 1 on-error mark-down
server staging01 x.x.x.x:80 check observe layer7
server staging02 x.x.x.x:80 check observe layer7
เซิร์ฟเวอร์กำลังเรียกใช้หลายแอปพลิเคชันบน apache / ผู้โดยสาร
การรวมกันของ httpchk และ disable-on-404 ช่วยให้สามารถปิดระบบได้อย่างนุ่มนวลและลบเซิร์ฟเวอร์ออกจาก lb ได้อย่างง่ายดายในขณะที่ยังสามารถเข้าถึงได้โดยตรง (เช่นสำหรับการทดสอบ)
ฉันพยายามตั้งค่าการสังเกตเพื่อปิดเซิร์ฟเวอร์เมื่อแอปพลิเคชันไม่ทำงาน ฉันกำหนดค่าแอปพลิเคชันบน staging02 แล้วดังนั้นจึงส่งคืน 500 เสมอมันถูกทำเครื่องหมายลงหลังจาก 500 แรก แต่แล้วทำเครื่องหมายขึ้นที่ httpchk ถัดไป
นี่คือล็อกไฟล์:
Server staging/staging02 is DOWN, reason: Health analyze, info: "Detected 1 consecutive errors, last one was: Wrong http response". 1 active and 1 backup servers left. 2 sessions active, 0 requeued, 0 remaining in queue.
Server staging/staging02 is DOWN, reason: Health analyze, info: "Detected 1 consecutive errors, last one was: Wrong http response". 1 active and 1 backup servers left. 1 sessions active, 0 requeued, 0 remaining in queue.
Server staging/staging02 is UP, reason: Layer7 check passed, code: 200, info: "OK", check duration: 0ms. 2 active and 1 backup servers online. 0 sessions requeued, 0 total in queue.
มีวิธีรวมเช็คทั้งสองนี้หรือไม่