![Clustering Tomcat com proxy Apache-[warn]: Nenhum manipulador de protocolo era válido para a URL /. Se você estiver usando uma versão DSO do mod_proxy](https://rvso.com/image/652947/Clustering%20Tomcat%20com%20proxy%20Apache-%5Bwarn%5D%3A%20Nenhum%20manipulador%20de%20protocolo%20era%20v%C3%A1lido%20para%20a%20URL%20%2F.%20Se%20voc%C3%AA%20estiver%20usando%20uma%20vers%C3%A3o%20DSO%20do%20mod_proxy.png)
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