Я немного новичок в HAProxy - у меня есть 3 контейнера докеров, один из которых работает с HAProxy со следующей конфигурацией:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
chroot /var/lib/haproxy
user haproxy
group haproxy
stats socket /var/run/haproxy.sock mode 600 level admin
# daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
balance source
listen stats :80
stats enable
stats uri /haproxy?stats
stats realm Strictly\ Private
stats auth test:test1234
balance roundrobin
#option forwardfor
default_backend myserv-legacy
backend myserv-legacy
cookie SERVERID insert indirect preserve
server myserv-A ${MYSERVA_PORT_8080_TCP_ADDR}:8080 cookie A check
server myserv-B ${MYSERVB_PORT_8080_TCP_ADDR}:8080 cookie B check
На двух других серверах запущено веб-приложение с использованием Tomcat.
Я отключил свои два сервера sudo docker stop myservA myservB
, и хотя я запустил их и могу подключаться к ним через открытые порты, в HAProxy они оба отображаются как отключенные с L4TOUT
в 2000мс.
Есть какие-нибудь подсказки, почему они не отображаются как доступные?
редактировать:
Если я сбегу
$ sudo docker stop haprox && sudo docker start haprox
(haprox - это имя моего контейнера HAProxy), тогда мои серверы снова доступны ...
Я как раз собирался спросить, менялось ли значение адресных переменных, хех.
Я видел, как это делается в динамических средах с контейнерами - это использование инструмента обнаружения сервисов, такого как etcd или Consul, чтобы помочь подсистеме балансировки нагрузки найти бэкенды - похоже, У Consul есть инструмент специально для случая использования HAProxy.