我的理解是,如果两个服务器后端通过 HAProxy 进行负载平衡,那么如果一个服务器出现故障,HAProxy 应该能够将所有流量引导到另一个服务器。
我有两个负载均衡的 Web 服务器,使用 roundrobin 和 httpchk,但当其中一个服务器宕机时,我会收到503 - Service unavailable
来自 HAProxy 的消息。也许我的配置有问题?
backend app
timeout server 50000ms
mode http
balance roundrobin
option httpchk
server ap1 ap1:8000 maxconn 4000 #ap1 is hostname
server ap2 ap2:8000 maxconn 4000 #ap2 is hostname
答案1
也许,如果您在 httpchk 中添加一个明确的 URL,它会有所帮助 - 默认情况下,它会在 / 上使用 http OPTION。此外,您还必须在主机定义中添加“check”关键字(http://haproxy.1wt.eu/download/1.3/doc/haproxy-en.txt第 3.1 节)
backend app
timeout server 50000ms
mode http
balance roundrobin
option httpchk HEAD /some/valid/url
server ap1 ap1:8000 maxconn 4000 check #ap1 is hostname
server ap2 ap2:8000 maxconn 4000 check #ap2 is hostname