Балансировка нагрузки 3 экземпляра tomcat 7 с помощью mod_jk дает `` Не удалось найти работника ''

Я отправляю это после проверки нескольких других сообщений, в которых, похоже, есть та же проблема, но я не могу решить свою проблему с помощью любого из них.

Ситуация: - Я использую Windows 8 Professional - Я установил 3 экземпляра tomcat на моем локальном хосте - Я установил Apache 2.4 с mod_jk, который будет использоваться в качестве моего балансировщика нагрузки

Я пытаюсь достичь: -Goto localhost / APPNAME (это Apache 2.4), теперь Apache перенаправит мой вызов на один из 3 экземпляров Tomcat 7 и предоставит мне запрошенную страницу.

Я делаю это впервые, так что, наверное, я что-то где-то забываю. Что у меня сейчас есть:

Файл server.xml Tomcat 7 выглядит так:

1-й Tomcat имеет:

<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

2-й Tomcat имеет:

<Connector port="8082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" />
<Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

3-й Tomcat имеет:

<Connector port="8083" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8445" />
<Connector port="8011" protocol="AJP/1.3" redirectPort="8445" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat3">

Для сервера Apache я добавил в httpd.conf: LoadModule jk_module modules / mod_jk.so

<IfModule jk_module>
  Include conf/extra/mod_jk.conf
</IfModule>

Mod_jk.conf выглядит так:

JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkShmFile logs/jk-runtime-status
JkLogStampFormat "[%b %d %Y - %H:%M:%S] "
JkRequestLogFormat "%w %V %T"

JkMountCopy All
JkMount /* balancer
#JkMount /* tomcat1
#JkMount /* tomcat2
#JkMount /* tomcat3

И, наконец, мой файл worker.properties выглядит так:

worker.tomcat1.type=ajp13
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.lbfactor=1

worker.tomcat2.type=ajp13
worker.tomcat2.port=8010
worker.tomcat2.host=localhost
worker.tomcat2.lbfactor=1

worker.tomcat3.type=ajp13
worker.tomcat3.port=8011
worker.tomcat3.host=localhost
worker.tomcat3.lbfactor=1

#configure the loadbalancer
worker.balancer.type=lb
worker.balancer.balance_workers=tomcat1,tomcat2,tomcat3
worker.balancer.method=B
worker.balancer.sticky_session=True

worker.stat.type=status 

Теперь я сначала запустил все экземпляры mu tomcat, затем я запускаю свой Apache. Теперь он выдаст мне следующее сообщение в mod_jk.log:

[Dec 12 2014 - 12:23:58] [3180:8452] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.40 initialized
[Dec 12 2014 - 12:23:58] [3180:8452] [error] extension_fix::jk_uri_worker_map.c (578): Could not find worker with name 'balancer' in uri map post processing.
[Dec 12 2014 - 12:23:58] [3180:8452] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.40 initialized
[Dec 12 2014 - 12:23:58] [3180:8452] [error] extension_fix::jk_uri_worker_map.c (578): Could not find worker with name 'balancer' in uri map post processing.
[Dec 12 2014 - 12:23:58] [9912:8284] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.40 initialized
[Dec 12 2014 - 12:23:58] [9912:8284] [error] extension_fix::jk_uri_worker_map.c (578): Could not find worker with name 'balancer' in uri map post processing.
[Dec 12 2014 - 12:23:59] [9912:8284] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.40 initialized
[Dec 12 2014 - 12:23:59] [9912:8284] [error] extension_fix::jk_uri_worker_map.c (578): Could not find worker with name 'balancer' in uri map post processing.

Что, конечно, означает, что я не работаю. Может ли кто-нибудь помочь мне и дать мне представление о том, что я делаю не так?


person zone4182    schedule 12.12.2014    source источник
comment
Хорошо, я думаю, что нашел по крайней мере одну проблему: я добавил следующую строку в свой файл worker.properties: worker.list = balancer В остальном все то же самое. Теперь в моем журнале mod_jk.log, по крайней мере, у меня больше нет ошибок, но, похоже, он все еще не работает. У меня есть это: когда я перехожу на localhost, он показывает мне страницу index.html по умолчанию, которая находится на Apache. Все мои 3 экземпляра tomcat имеют веб-приложение, и все коты работают, когда я перехожу на localhost / webapp, он дает мне 404 not found, поэтому очевидно, что он не перенаправляется правильно. Любые идеи?   -  person zone4182    schedule 12.12.2014


Ответы (1)


Хорошо, я заработал. Кажется, я использовал сервер Apache, который вызывает проблему.

Я искал на этом форуме все более и более конкретно и нашел этот пост: https://stackoverflow.com/questions/25507063/httpd-and-tomcat-with-mod-jk-on-port-80-test-fails

Благодаря этому ответу я решил также попробовать другую загрузку Apache.

С сайта Apache я использовал загрузку версии Apache Haus для Windows. Я не мог заставить его работать. Однако я скачал с сайта другую версию, скопировал все свои настройки, и теперь она работает!

person zone4182    schedule 12.12.2014