Назад | Перейти на главную страницу

Как мне сообщить HAProxy, что мой сервер резервный?

Я немного новичок в 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.