我如何通知 HAProxy 我的服务器已恢复?

我如何通知 HAProxy 我的服务器已恢复?

我是一个 HAProxy 新手 - 我有 3 个 docker 容器,其中一个运行 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 运行 Web 应用程序。

我使用 关闭了我的两台服务器sudo docker stop myservA myservB,尽管我已经启动了它们并且可以通过它们的暴露端口连接到它们,但它们都在 HAProxy 中显示为L4TOUT在 2000 毫秒内关闭。

有任何线索可以解释为什么它们没有显示为可用吗?

编辑

如果我跑

$ sudo docker stop haprox && sudo docker start haprox

(haprox 是我的 HAProxy 容器的名称)然后我的服务器再次可用......

答案1

我正要问地址变量的值是否正在改变,呵呵。

在动态容器环境中,我看到的做法是使用 etcd 或 Consul 等服务发现工具来帮助负载均衡器找到后端 - 如下所示Consul 有一个专门针对 HAProxy 用例的工具。

相关内容