HAProxy 负载平衡后端 - 一台服务器关闭时的行为

UpT*_*eek 1 linux load-balancing haproxy

我的理解是,通过 HAProxy 对两个服务器后端进行负载平衡,如果其中一个出现故障,HAProxy 应该能够将所有流量定向到另一个。

我有两个负载均衡的网络服务器,带有 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
Run Code Online (Sandbox Code Playgroud)

Pas*_*iel 5

如果您向 httpchk 添加显式 URL 可能会有所帮助 - 默认情况下,它在 / 上使用 http 选项。此外,您必须将“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
Run Code Online (Sandbox Code Playgroud)