我正在使用具有以下后端配置的 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
Run Code Online (Sandbox Code Playgroud)
服务器在 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 …
Run Code Online (Sandbox Code Playgroud) haproxy ×1