Estou tentando configurar um balanceador de carga com o Apache mod_proxy e o Tomcat.
Eu tenho os seguintes módulos disponíveis (mod_proxy, mod_proxy_balancer, mod_proxy_http)
Eu tenho duas instâncias do Tomcat e o plano é rotear a solicitação para um dos servidores do Tomcat.
Meu aplicativo no Tomcat está funcionando bem quando acesso diretamente.
www.mydomain: 8080 / myapp
www.mydomain: 9080 / myapp
Meu servidor Tomcat.xml tem o seguinte
Tomcat 1
Nome do mecanismo="Catalina" defaultHost="localhost" jvmRoute="tomcat1"
Tomcat 2
Nome do mecanismo="Catalina" defaultHost="localhost" jvmRoute="tomcat2"
Aqui está o que eu tenho no meu virtualhost.conf
<IfModule proxy_module>
ProxyRequests on
ProxyPreserveHost Off
ProxyPass / balancer://mycluster/ stickysession=JSESSIONID
ProxyPassReverse / balancer://mycluster/ stickysession=JSESSIONID
ProxyPassReverseCookiePath /myapp /
<Proxy balancer://mycluster >
BalancerMember http://localhost:8080/myapp route=tomcat1
BalancerMember http://localhost:9080/myapp route=tomcat2
Require all granted
ProxySet lbmethod=byrequests
</Proxy>
<Location /balancer>
SetHandler balancer
Require host www.mydomain.com
</Location>
</IfModule>
Com a configuração acima, consigo acessar a primeira página do site. Quando eu acesso o www.mydomain.com, ele carrega a página de login (www.mydomain.com/login.do)
Quando clico em outros links, ele abre as páginas corretas. Por exemplo: www.mydomain.com/password-reset.do
O failover básico também funciona. Se eu desligar uma instância do Tomcat, ela será exibida na página do outro servidor e vice-versa.
Mas quando tento enviar qualquer pedido POST como tentar fazer login, o URL muda para www.mydomain / myapp / login.do e sempre mostra a página de login.
Não tenho certeza se as entradas conf acima estão totalmente corretas em relação ao que desejo.
Alguém pode me dizer o que está errado? Também, por favor, deixe-me saber se estou faltando alguma coisa aqui em relação à sucilidade.
Eu também gostaria de ter arquivos de imagem e outros arquivos servidos diretamente do servidor da Web. Por favor, deixe-me saber como posso fazer isso.
Obrigado