Bom Dia a todos. Vou te dar um exemplo, eu tentei
Existem 2 entradas para BalanceMember em /etc/hosts. Claro, não olhe para essas máquinas virtuais, é uma caixa preta. Todas as solicitações retornam para 404 não encontradas.
ServerName service.test.com
SSLProxyEngine on
<Proxy "balancer://service">
BalancerMember https://service1.ng.com
BalancerMember https://service2.ng.com
</Proxy>
ProxyPass "/" "balancer://service/"
ProxyPassReverse "/" "balancer://service/"
Se eu editar /etc/hosts e alterar o nome de service1.ng.com para service.ng.com, altere conf apache para este
ServerName service.test.com
SSLProxyEngine on
<Proxy "balancer://service">
BalancerMember https://service.ng.com
BalancerMember https://service2.ng.com
</Proxy>
ProxyPass "/" "balancer://service/"
ProxyPassReverse "/" "balancer://service/"
Uma solicitação em 2 retornará 200 OK. Você entende, certo? Mas não consigo entender. O que o proxy envia para um dos balanceadores, que tudo funciona. Bem, ou depois do balanceador, não sei.
Agradecemos antecipadamente pela sua resposta.
Parece que você pode precisar de uma configuração diferente em seus back-ends (
service1,2
) para responder às solicitações que chegam aos nomes de hostservice1,2
ou de uma configuração diferente paraProxyPreserveHost
.Na configuração padrão, um ProxyPass substituirá o cabeçalho Host da solicitação quando for enviado por proxy para os back-ends. Isso ocorre porque o próprio backend pode ter vários
VirtualHost
programas configurados e precisa ser capaz de descobrir qual deles usar. Isso pode causar um problema porque nesse ponto você não sabe mais qual era o nome do host original solicitado.É perfeitamente válido configurar todos os seus backends para responder ao nome do servidor original, pois isso causará menos problemas com, por exemplo, links que eles colocam em páginas, que não conterão acidentalmente
https://service1/
ou algo assim, mas você precisa configurarProxyPreserveHost on
para informar o seu frontend httpd para deixar o cabeçalho da solicitaçãoHost
em paz.Este bloco resolveu meu problema. Obrigado.