Verificações de integridade do HAProxy e alteração do estado do servidor

1

Eu passei por muitos documentos e pesquisas do Google, mas parece que não consegui encontrar uma resposta. Estou usando o HAProxy com vários servidores que demoram um pouco para serem iniciados - os carregamentos iniciais em minha VM local são de aproximadamente um ou dois minutos. Parece que, ao observar os logs de depuração que o HAProxy verifica nesses servidores, falha em uma conexão de nível 4 e, em seguida, marca o servidor como permanentemente inativo. A pesquisa não indica uma maneira de reativar as verificações de integridade.

Minha suposição era que eles aconteceriam novamente após um atraso, mas não vejo nenhum aviso em meus registros de que os servidores estão sendo verificados novamente. Se eu reiniciar o HAProxy, ele detecta que os servidores estão ativos, mas o ideal é que eles sejam marcados como mortos por alguns minutos, detectem que estão de volta e, em seguida, retornem à rotação. Eu também tentei enviar SIGHUP, mas isso só imprime um relatório dos resultados da última verificação. O manual de configuração é um pouco esmagador. O que estou perdendo?

Aqui está o meu haproxy.cfg:

global
  log 127.0.0.1 local0
  log 127.0.0.1 local1 notice
  maxconn 1024
  user proxy
  group proxy
  tune.ssl.default-dh-param 2048
  ssl-default-bind-ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:!NULL:!aNULL:!RC4:!RC2:!MEDIUM:!LOW:!EXPORT:!DES:!MD5:!PSK:!3DES
  debug

defaults
  log global
  mode http
  option httplog
  option dontlognull
  option forwardfor
  option http-server-close
  option redispatch
  retries 3

  timeout connect 5s
  timeout client 50s
  timeout server 50s

frontend http-in
  bind *:80
  bind *:443 ssl crt /etc/ssl/private/perceptronapp.com.pem no-sslv3
  redirect prefix https://www.perceptronapp.com code 301 if { hdr(host) -i perceptronapp.com }
  redirect scheme https if !{ ssl_fc }
  use_backend blog if { path_beg /blog }
  use_backend app

backend app
  balance leastconn
  cookie JSESSIONID insert nocache
  server s1 s1.perceptron.skydns.local:3000 check inter 3m cookie s1
  server s2 s2.perceptron.skydns.local:3000 check inter 3m cookie s2

backend blog
  server s1 s1.ghost.skydns.local:2368 check inter 3m
    
por Nolan 17.02.2015 / 20:00

1 resposta

1

Descobri isso. O HAProxy faz sua resolução de DNS na inicialização, que eu suspeitava, mas tinha dificuldade em confirmar, já que todas as minhas consultas me levaram de volta ao manual de configuração. Como eu possuo a infra-estrutura DNS e o namespace sendo consultados (SkyDNS de contêineres do Docker), eu esperava usar isso para a descoberta de serviço e back-ends de HAProxy. Parece que um sistema resolvedor tipo Nginx pode estar no roteiro HAProxy de acordo com este , mas um checkout e A análise rápida das fontes mais recentes não indicava que ainda estava vivo.

Desde então, mudaram para a geração de arquivos de configuração baseados em confd e reiniciações elegantes. Um pouco mais chato de configurar, mas parece fazer o trabalho.

    
por 19.02.2015 / 17:58

Tags