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

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

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_modulee mod_proxy_balancer.socomo 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:

  1. Habilite os módulos: a2enmod proxy a2enmod proxy_http.
  2. No seu caso, você deseja usar o AJP, então provavelmente precisará instalar uma ou duas coisas (por exemplo, a2enmod proxy_ajp).
  3. No seu Host Virtual (você pode fazer, http.confmas 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

informação relacionada