Como configurar o alvo de ping do Amazon ELB para o haproxy

2

Estou tentando configurar o Amazon ELB para rotear solicitações para alguns servidores haproxy. O ELB requer um alvo de ping para os respectivos servidores para verificação de integridade. Ele usa index.html na porta 80. Estou lutando para configurar um index.html no haproxy. Aqui está a minha configuração haproxy:


global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

defaults
    mode        http
    option      dontlognull
    option      httpclose
    option      httplog
    option      forwardfor
    option      redispatch
    option httpchk HEAD /index.html HTTP/1.0
    timeout connect 10000 # default 10 second time out if a backend is not found
    timeout client 300000
    timeout server 300000
    maxconn     60000
    retries     3

#
# Host HA-Proxy's web stats on Port 81.
listen stats :1936
    mode http
    stats enable
    stats hide-version
    stats realm Haproxy\ Statistics
    stats uri /
    stats auth Username:Password

frontend  main *:80
    log 127.0.0.1 local2
    capture request  header         X-Forwarded-For      len 500
    capture response header         X-Query-Result       len 100
    acl url_webapp                  path_beg -i /supporttoolbar
    acl url_jsonproxy               path_beg -i /proxy

backend webapp
    balance     roundrobin
    server      webapp1 10.100.86.xxx:80 check
backend jsonproxy
    balance     roundrobin
    server      webapp1 10.100.86.xxx:80 check

A página html está localizada em / var / www / html /

Eu tentei adicionar opção httpchk HEAD /index.html HTTP / 1.0 na seção defaults , mas não funcionou.

Todos os ponteiros serão apreciados.

Obrigado

    
por Shamik 14.02.2014 / 20:32

2 respostas

4

Por favor, dê uma olhada nesta essência . Basicamente descreve / configura o que você precisa:

# Create a monitorable URI which returns a 200 if at least 1 server is up.
# This could be used by Traverse/Nagios to detect if a whole server set is down.
acl servers_down nbsrv(servers) lt 1
monitor-uri /haproxy?monitor
monitor fail if
    
por 14.02.2014 / 22:12
0

Eu encontrei uma alternativa adicionando a seguinte entrada no arquivo de configuração da Haproxy.


defaults
    mode        http
    option      dontlognull
    option      httpclose
    option      httplog
    option      forwardfor
    option      redispatch
    timeout connect 10000 # default 10 second time out if a backend is not found
    timeout client 300000
    timeout server 300000
    monitor-uri /index.html
    maxconn     60000
    retries     3

A entrada monitor-uri /index.html entrou em ação. Haproxy tem essa verificação de integridade interna que retorna um valor de 200 se o serviço estiver ativo. Eu apenas zombei dele para usar o /index.html que o Amazon ELB reconhece.

    
por 14.02.2014 / 22:01