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.
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?
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.
Tags nginx load-balancing haproxy