El proxy HA no se recupera de "no hay ruta al host"

El proxy HA no se recupera de "no hay ruta al host"

Estamos utilizando el proxy HA en una instancia de Amazon EC2 para enrutar ciertas solicitudes a dos balanceadores de carga internos diferentes que son ELB (Elastic Load Balancers) de EC2.

Aquí está la configuración del proxy HA:

defaults
    mode                    http
    log                     global
    no option               redispatch
    retries                 25
    timeout connect 10000 # default 10 second time out if a backend is not found
    timeout client 30000
    timeout server 30000
    maxconn     20000
    stats uri /haproxy?stats
    option http-server-close
    timeout http-request    100s
    timeout http-keep-alive 124s

backend main-service-backend
    option httpchk GET /ping
    server main-service internal-main-service:80 check inter 5s fall 10

backend micro-service-backend
    option httpchk GET /ping
    server micro-service internal-micro-service:80 check inter 5s fall 10

frontend shared-frontend *:80
    acl is-micro-service-url path_reg ^/(/rest/user/.*/?)
    use_backend micro-service-backend if is-micro-service-url
    default_backend main-service-backend

Normalmente, si apago uno de los servidores por un tiempo, el proxy HA se recuperará. Sin embargo, parece que se está produciendo algún error de red/enrutamiento y el proxy HA no se recupera.

Estos son los registros del proxy HA:

Server micro-service-backend/micro-service is DOWN, reason: Layer4 connection problem, info: "No route to host", check duration: 998ms. 0 active and 0 backup servers left. 1 sessions active, 0 requeued, 0 remaining in queue.
 backend micro-service-backend has no server available!

El proxy HA deja de comprobar el servidor y sigue marcándolo como ABAJO. Sin embargo, puedo realizar con éxito la verificación de estado http desde el cuadro de proxy HA al balanceador de carga interno:

curl -i http://internal-micro-service:80/ping 
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Date: Fri, 12 Jun 2015 23:08:29 GMT
Server: Apache-Coyote/1.1
Content-Length: 2
Connection: keep-alive

UP

¿Alguna idea de qué podría estar mal? ¿Qué más debo investigar?

Respuesta1

Después de buscar en Google, descubrí que el proxy HA solo resuelve DNS al inicio. Los ELB de EC2 pueden cambiar aleatoriamente las direcciones IP, lo que hace que las comprobaciones de estado fallen, ya que el proxy HA no realiza la resolución de DNS antes de realizar la verificación de estado.

Los balanceadores de carga elásticos cambian las direcciones IP

HA Proxy realiza resolución DNS al inicio

Más detalles sobre la resolución DNS de HA Proxy

información relacionada