Haproxy e CNAME

1

Eu quero criar um balanceador de carga simples para os dois servidores.

O problema é com registros CNAME, eu acho.

Digamos que eu tenha dois dos mesmos aplicativos no AppFog.com.

app1.aws.af.cm and app2.aws.af.cm

Aqui está o meu arquivo haproxy.cfg:

global
    maxconn 2000
    daemon

defaults
    mode http
    clitimeout 60000
    srvtimeout 30000
    contimeout 4000
    option httpclose

listen http_proxy 
    bind [myip]:80
    mode http
    stats enable
    stats auth user:passwd
    stats uri /stats
    balance source
    option httpchk
    option forwardfor
    server host01 app1.aws.af.cm:80 maxconn 300 check
    server host02 app2.aws.af.cm:80 maxconn 300 check

Mas isso só resolve o IP para o domínio app1.aws.af.cm e app2.aws.af.cm, o que obviamente não funciona se eu abrir este IP no navegador da Web.

O problema é que o AppFog não possui IP público para aplicativos (o mesmo que o OpenShift).

Como fazer com que o Haproxy execute uma conexão adequada entre o Load Balancer e esses dois servidores?

Exemplo:

Este é um aplicativo real - link

O Haproxy só resolve o IP para este domínio que é 46.51.204.8:80

É claro que esse IP não mostrará meu aplicativo, apenas uma página de erro.

Desculpe pelo meu pobre Inglês.

    
por user123354 03.06.2012 / 16:57

2 respostas

1

Tendo um pouco de dificuldade em seguir o seu problema. No entanto, uma coisa a ter em mente é que as solicitações HTTP têm o nome de domínio solicitado como o campo Host no cabeçalho HTTP.

Portanto, balanceadores de carga e servidores da Web geralmente direcionarão a solicitação ou responderão à solicitação se a ligação nome corresponder ao cabeçalho do host.

Talvez isso resolva um pouco as coisas, ou talvez você possa tentar reformular sua pergunta?

    
por 03.06.2012 / 17:07
0

Eu não tenho certeza se entendi completamente isso também. Quando eu tinha sites que se ligam a um cabeçalho de host ao invés de um endereço IP, tudo que eu tinha que fazer era garantir que a verificação de saúde também usasse o cabeçalho:

option httpchk HEAD /mystatus HTTP/1.1\r\nHost:\ example.com

Isso permite que ele passe na verificação de integridade. Quando um cliente se conecta, ele inserirá o domínio apropriado, como www.example.com. Para meu conhecimento, a informação do cabeçalho do host não é perdida, então as conexões funcionarão.

    
por 12.03.2013 / 15:05