Mod_Jk Балансировка нагрузки

Я пробовал все возможное, чтобы заставить Mod_jk работать, но безуспешно. Я пробовал несколько загрузок Apache, пробовал все рекомендации, которые мог найти, включая проверку специальных символов... и Apache, и Tomcat работают, как и ожидалось, но по-прежнему не балансируют нагрузку, и я продолжаю получать эти сообщения об ошибках. Есть идеи?

[1640:3636] [info] init_jk::mod_jk.c (3383): mod_jk/1.2.40 initialized
[1640:3636] [error] extension_fix::jk_uri_worker_map.c (578): Could not find worker with name 'LoadBalancer' in uri map post processing.
[1640:3636] [error] extension_fix::jk_uri_worker_map.c (578): Could not find worker with name 'jk-status' in uri map post processing.

Я использую Apache 2.4.23 и Mod_Jk 1.2.4 для 32-разрядной версии Windows.

в httpd.conf:

Listen 10.x.x.x:80
LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
        JkWorkersFile conf/workers.properties

        JkShmFile logs/mod_jk.shm
        JkLogFile logs/mod_jk.log
        JkLogLevel info

        JkWatchdogInterval 60

        <Location /jk-status>
            JkMount jk-status
            Order deny,allow
            Deny from all
            Allow from 10.4.81.62
        </Location>

        <Location /jk-manager>
            JkMount jk-manager
            Order deny,allow
            Deny from all
            Allow from 10.4.81.62
        </Location>


        # Configure applications
        JkMount /Geoserver/* LoadBalancer

</IfModule>

в work.properties:

workers.list=jk-status
worker.jk-status.type=status

worker.list=jk-manager
worker.jk-manager.type=status

workers.list=LoadBalancer
worker.LoadBalancer.type=lb
worker.balancer.error_escalation_time=0
worker.balancer.max_reply_timeouts=10

worker.worker1.type=ajp13
worker.worker1.host=10.x.x.x
worker.worker1.port=8009
worker.worker1.lbfactor=1
worker.worker1.activation=A
worker.worker1.socket_connect_timeout=5000
worker.worker1.socket_keepalive=true

worker.worker2.type=ajp13
worker.worker2.host=10.x.x.x
worker.worker2.port=8010
worker.worker2.lbfactor=1
worker.worker2.activation=A
worker.worker2.socket_connect_timeout=5000
worker.worker2.socket_keepalive=true

worker.LoadBalancer.balance_workers=worker1,worker2

в Tomcat-1 server.xml:

  <Engine name="Catalina" defaultHost="10.x.x.x" jvmRoute="worker1">     
  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

в Tomcat-2 server.xml:

  <Engine name="Catalina" defaultHost="10.x.x.x" jvmRoute="worker2">     
  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

person JoeThomas    schedule 08.08.2016    source источник


Ответы (1)


У вас есть односимвольная ошибка в файле workers.properties:

workers.list=LoadBalancer

должно быть:

worker.list=LoadBalancer

У вас такая же проблема с рабочим jk-status.

(Извините, что вы убивали себя из-за этого.)

person Christopher Schultz    schedule 10.08.2016
comment
Мужик, ты лучший. Еще одно доказательство того, что мы люди. Отличная работа. - person JoeThomas; 11.08.2016
comment
На самом деле, есть ли какой-нибудь отладчик, который можно использовать, чтобы избежать глупых ошибок? - person JoeThomas; 11.08.2016
comment
Вы можете включить ведение журнала на уровне TRACE для mod_jk, но он будет сообщать вам только о том, что он делает, а не о том, что он НЕ делает. Сообщение об ошибке Could not find worker with name 'LoadBalancer' было ключом к проблеме. Если воркер отсутствует на карте, это значит, что он не загружается, или JkWorkersFile находится не в том месте в конфигурационном файле. - person Christopher Schultz; 11.08.2016