Haproxy reescreve o host, mas envia um original para os servidores?

1

Atualmente, tenho nginx > 25 x nginx + fcgi

O nginx principal, o balanceamento de carga e cada virtualhost ouve um ip diferente (produtos diferentes).

alguns dos ips recebem diferentes nomes de host, e eles são reescritos novamente para os servidores de back-end como:

... http://some-random-url.com/path

GET /path HTTP/1.1

Host: app1

X-Original-Host: some-random-url.com

X-Forwarded-For: 12.34.56.78

....

Atualmente, estamos substituindo o proxy principal por haproxy (melhores algoritmos de balanceamento de carga), mas não consigo descobrir como anexar o host original. (Não consigo encontrar nenhuma documentação sobre variáveis como o $ host do nginx).

Eu posso reescrever o URL como:

reqirep ^Host: Host:\ app1

mas "app1" ainda exige que o nome do host original faça a lógica de negócios.

Pensei em executar cada aplicativo em uma porta diferente, mas o problema é que eu quero que o httpchk de nginx funcione para todos os servidores de backend e fazer um backend por aplicativo significa 10 aplicativos x 10 verificações = 10 verificações por segundo para cada backend (a menos que os dados do log estejam lidos).

Alguém tem uma ideia?

    
por Angelo Vargas 03.03.2012 / 01:15

1 resposta

2

Apenas deixe o cabeçalho Host sozinho - o HAProxy não molega normalmente, por isso, se você o deixar sozinho, ele será passado para os servidores de aplicativos.

    
por 03.03.2012 / 03:41