我将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 / passenger上运行多个应用程序。
httpchk和disable-on-404的组合允许正常关闭并非常轻松地从lb中删除服务器,同时仍然可以直接访问(即用于测试)。
我正在尝试设置观察程序,以便在应用程序无法正常工作时禁用服务器。我已经破坏了staging02上的应用程序配置,因此它始终返回500。在第一个500之后正确地将其标记为DOWN,但是在下一个httpchk处将其标记为UP。
这是日志文件:
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.
有没有办法将这两项检查结合起来?
可以肯定地说,HAProxy绝对是问题所在,您可以从后端Apache服务器中找到三个匹配的日志行并将它们添加到您的问题中吗?
—
Ladadadada 2011年
故意将其中一台apache服务器配置错误,以便其上的所有应用程序都返回500错误代码。但是,除非我删除该文件,否则/check.txt始终有效。我希望apache服务器被禁用,即使它返回500错误,即使check.txt文件仍然存在。
—
ouranos 2011年