Насколько я понимаю, с двумя серверными бэкэндами с балансировкой нагрузки с помощью 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
Может быть, поможет, если вы добавите явный URL-адрес в свой httpchk - по умолчанию он использует ОПЦИЮ 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