Кластеризация Tomcat с Apache-[warn] proxy: для URL-адреса / не найден допустимый обработчик протокола. Если вы используете версию DSO mod_proxy

Кластеризация Tomcat с Apache-[warn] proxy: для URL-адреса / не найден допустимый обработчик протокола. Если вы используете версию DSO mod_proxy

Я новичок в apache и tomcat, и пытаюсь реализовать кластеризацию с mod_proxy и запустить несколько экземпляров tomcat, но застрял. Вот моя конфигурация:

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/

При перезапуске Apache в 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.

А также мой server.xml двух экземпляров установил jvmRoute="server1" и jvmRoute="server1"....

решение1

Я знаю, что это старый вопрос, но, возможно, ответ будет полезен другим.

Имена последних двух загруженных модулей неверны. mod_proxy_ajp.soзагружен как proxy_moduleи mod_proxy_balancer.soкак proxy_http_module.

неправильный:

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy_ajp.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_balancer.so

верно:

LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module /usr/lib/apache2/modules/mod_proxy_balancer.so

решение2

Не уверен, какую ОС вы используете, но обычно делают следующее:

  1. Включите модули: a2enmod proxy a2enmod proxy_http.
  2. В вашем случае вы хотите использовать AJP, поэтому вам, вероятно, придется установить кое-что (например, a2enmod proxy_ajp).
  3. На вашем виртуальном хосте (это можно сделать, http.confно это не самый гибкий способ).

Вот что вы скопировали из своего вопроса:

<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/

Вот как я это делаю (не сильно отличается):

<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

Связанный контент