Eu sou novo no Apache e no Tomcat e estou tentando implementar clustering com mod_proxy e consegui executar várias instâncias do Tomcat, mas travei. Aqui está minha configuração:
httpd.conf:
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy_ajp.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_balancer.so
<Proxy balancer://testcluster stickysession=JSESSIONID>
BalancerMember ajp://localhost:8109 min=10 max=100 route=server1 loadfactor=1
BalancerMember ajp://localhost:8209 min=20 max=200 route=server2 loadfactor=1
</Proxy>
ProxyPass / balancer://testcluster/
Ao reiniciar o apache, ele mostra o seguinte em error.log:
[Fri Feb 27 16:45:44 2015] [notice] Apache/2.2.22 (Ubuntu) configured -- resuming normal operations
[Fri Feb 27 16:46:48 2015] [warn] proxy: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
E também meu server.xml de duas instâncias foi definido como jvmRoute="server1" e jvmRoute="server1"....
Responder1
Eu sei que esta é uma pergunta antiga, mas talvez a resposta seja útil para outras pessoas.
Os nomes dos módulos dos dois últimos módulos carregados estão errados. mod_proxy_ajp.so
é carregado como proxy_module
e mod_proxy_balancer.so
como proxy_http_module
.
errado:
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy_ajp.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_balancer.so
certo:
LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module /usr/lib/apache2/modules/mod_proxy_balancer.so
Responder2
Não tenho certeza de qual sistema operacional você está usando, mas é comum fazer o seguinte:
- Habilite os módulos:
a2enmod proxy
a2enmod proxy_http
. - No seu caso, você deseja usar o AJP, então provavelmente precisará instalar uma ou duas coisas (por exemplo,
a2enmod proxy_ajp
). - No seu Host Virtual (você pode fazer,
http.conf
mas não é a forma mais flexível).
Isto é o que você copiou da sua pergunta:
<Proxy balancer://testcluster stickysession=JSESSIONID>
BalancerMember ajp://localhost:8109 min=10 max=100 route=server1 loadfactor=1
BalancerMember ajp://localhost:8209 min=20 max=200 route=server2 loadfactor=1
<Proxy>
ProxyPass / balancer://testcluster/
É assim que eu faço (não muito diferente):
<Proxy balancer://testcluster >
BalancerMember ajp://localhost:8109 min=10 max=100 route=server1 loadfactor=1
BalancerMember ajp://localhost:8209 min=20 max=200 route=server2 loadfactor=1
<Proxy>
ProxyPass / balancer://testcluster/ stickysession=JSESSIONID