Soy nuevo en Apache y Tomcat, intento implementar la agrupación en clústeres con mod_proxy y pude ejecutar varias instancias de Tomcat, pero me quedé atascado. Aquí está mi configuración:
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/
Al reiniciar Apache, se muestra lo siguiente en 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.
Y también mi server.xml de dos instancias se ha configurado en jvmRoute="server1" y jvmRoute="server1"....
Respuesta1
Sé que esta es una vieja pregunta, pero tal vez la respuesta sea útil para otros.
Los nombres de los módulos de los dos últimos módulos cargados son incorrectos. mod_proxy_ajp.so
se carga como proxy_module
y mod_proxy_balancer.so
como proxy_http_module
.
equivocado:
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy_ajp.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_balancer.so
bien:
LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module /usr/lib/apache2/modules/mod_proxy_balancer.so
Respuesta2
No estoy seguro de qué sistema operativo está utilizando, pero se acostumbra hacer lo siguiente:
- Habilite los módulos:
a2enmod proxy
a2enmod proxy_http
. - En su caso, desea utilizar AJP, por lo que probablemente tenga que instalar un par de cosas (por ejemplo
a2enmod proxy_ajp
). - En tu Host Virtual (puedes hacerlo
http.conf
pero no es la forma más flexible).
Esto es lo que has copiado de tu pregunta:
<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/
Así es como lo hago (no muy 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