我在查看其他几个似乎有同样问题的帖子之后发布了这个帖子,但我无法借助其中任何一个来解决我的问题。
情况: - 我正在使用Windows 8专业版 -I在我的localhost上安装了3个tomcat实例 -I安装了带有mod_jk的Apache 2.4,用作我的负载均衡器
我想要达到的目标是: -Goto localhost / APPNAME(这是Apache 2.4),Apache现在将我的调用重定向到3个Tomcat 7实例中的一个,并给我所请求的页面。
这是我第一次这样做,所以我可能忘记某处了。我现在拥有的是:
Tomcat 7 server.xml如下所示:
第一个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">
第二个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">
第三个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">
对于我添加到httpd.conf的Apache服务器: 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
最后我的workers.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.
这当然意味着我不工作。谁能帮助我,让我知道我做错了什么?
答案 0 :(得分:0)
好的,我开始工作了。我似乎使用了一个导致问题的Apache服务器。
我在这个论坛上搜索得越来越具体,发现这篇文章: httpd AND Tomcat with mod_jk on Port 80 test fails
由于这个答案,我决定尝试不同的Apache下载。
从Apache网站我下载到Apache Haus版本的Apache for Windows。我无法让它发挥作用。但是,我从网站下载了另一个版本,复制了我的所有设置,现在它可以工作了!