Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 使用mod_jk给出的“找不到工作者”负载平衡3个tomcat 7实例_Apache_Tomcat_Load Balancing_Mod Jk - Fatal编程技术网

Apache 使用mod_jk给出的“找不到工作者”负载平衡3个tomcat 7实例

Apache 使用mod_jk给出的“找不到工作者”负载平衡3个tomcat 7实例,apache,tomcat,load-balancing,mod-jk,Apache,Tomcat,Load Balancing,Mod Jk,我是在查看了其他几个似乎有相同问题的帖子后发布这篇文章的,但我无法通过这些帖子中的任何一个来解决我的问题 情况: -我正在使用Windows8专业版 -我在本地主机上安装了3个tomcat实例 -我安装了带有mod_jk的Apache2.4,用作我的负载平衡器 我想要实现的是: -转到localhost/APPNAME,即Apache2.4,Apache现在将我的调用重定向到3个Tomcat7实例之一,并给我请求的页面 这是我第一次这样做,所以我可能忘记了什么地方。我现在得到的是: Tomcat

我是在查看了其他几个似乎有相同问题的帖子后发布这篇文章的,但我无法通过这些帖子中的任何一个来解决我的问题

情况: -我正在使用Windows8专业版 -我在本地主机上安装了3个tomcat实例 -我安装了带有mod_jk的Apache2.4,用作我的负载平衡器

我想要实现的是: -转到localhost/APPNAME,即Apache2.4,Apache现在将我的调用重定向到3个Tomcat7实例之一,并给我请求的页面

这是我第一次这样做,所以我可能忘记了什么地方。我现在得到的是:

Tomcat 7 server.xml的外观如下所示:

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.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 
第一只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">
<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">
<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">
最后,我的workers.properties文件如下所示:

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

这当然意味着我不工作。谁能帮帮我,告诉我我做错了什么吗?

好的,我知道了。似乎我使用了Apache服务器,这导致了问题

我在这个论坛上搜索得越来越详细,发现了以下帖子:

由于这个答案,我决定尝试另一种Apache下载


从我使用的Apache站点下载到Apache Haus版本的Apache for Windows。我无法让它工作。然而,我从网站下载了另一个版本,复制了我的所有设置,现在它可以工作了

好的,我想我至少发现了一个问题:我在我的workers.properties文件中添加了以下行:workers.list=balancer其余的还是一样的。现在在我的mod_jk.log中,至少我不再有任何错误,但是它似乎仍然不起作用。我有这样一个功能:当我转到localhost时,它会显示Apache上的默认index.html页面。我的3个tomcat实例都有一个webapp,当我转到localhost/webapp时,所有tomcat都在运行,这给了我一个404 not found,所以很明显它没有正确重定向。有什么想法吗?