使用 Apache mod_jk.c 的负载平衡 (3791):缺少本地主机的 uri 映射

Load Balancing using Apache mod_jk.c (3791): missing uri map for localhost

一个需求,我需要为一个web应用做负载均衡。

我正在努力解决以下问题。请看日志

[Tue Jan 06 15:20:06 2015] [10548:14728] [debug] jk_shm_attach::jk_shm.c (337): Attached shared memory memory [1] size=3072 free=0 addr=0x50aa80
[Tue Jan 06 15:20:06 2015] [10548:14728] [debug] jk_child_init::mod_jk.c (3266): Initialized mod_jk/1.2.40
[Tue Jan 06 15:20:55 2015] [10548:11696] [debug] jk_translate::mod_jk.c (3623): missing uri map for localhost:/eimsgoed
[Tue Jan 06 15:20:55 2015] [10548:11696] [debug] jk_map_to_storage::mod_jk.c (3791): missing uri map for localhost:/eimsgoed
[Tue Jan 06 15:21:56 2015] [10548:11696] [debug] jk_translate::mod_jk.c (3623): missing uri map for localhost:/eimsgoed
[Tue Jan 06 15:21:56 2015] [10548:11696] [debug] jk_map_to_storage::mod_jk.c (3791): missing uri map for localhost:/eimsgoed

/eimsgoed 是我在 tomcat 个实例中部署的应用程序。

请查看我的 workers.properties 个文件

=============================

worker.list=balancer

worker.tomcat1.type=ajp13
worker.tomcat1.port=9004
worker.tomcat1.host=localhost

worker.tomcat2.type=ajp13
worker.tomcat2.port=9024
worker.tomcat2.host=localhost

worker.tomcat3.type=ajp13
worker.tomcat3.port=9012
worker.tomcat3.host=localhost


worker.balancer.type=lb
worker.balancer.balance_workers=tomcat1,tomcat2,tomcat3

worker.list=jkstatus
worker.jkstatus.type=status

我的httpd.conf文件

=============

LoadModule jk_module modules/mod_jk.so

# Path to workers.properties
JkWorkersFile conf/workers.properties

# Path to jk logs
JkLogFile logs/mod_jk.log

# Jk log level [debug/error/info]
JkLogLevel debug

# Jk log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions for forwarding
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"



JkMount /eimsgoed balancer
JkMount /status jkstatus 

我的 server.xml 所有 3 tomcat 个实例

================================

tomcat 1 个实例

<!-- Define an AJP 1.3 Connector on port 8009 -->
 <Connector port="9004" protocol="AJP/1.3" redirectPort="9003" />

 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

tomcat 2 个实例

<!-- Define an AJP 1.3 Connector on port 8009 -->
 <Connector port="9024" protocol="AJP/1.3" redirectPort="9023" />
 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

tomcat 3 个实例

<!-- Define an AJP 1.3 Connector on port 8009 -->
 <Connector port="9012" protocol="AJP/1.3" redirectPort="9011" />

 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat3">

URI 哪里出错了?

[Tue Jan 06 15:21:56 2015] [10548:11696] [debug] jk_map_to_storage::mod_jk.c (3791): missing uri map for localhost:/eimsgoed

有关信息,我正在使用 Tomcat 7,Apache HTTP Server 2.4.10 和 Tomcat Mod_JK 连接器 1.2.40,Windows 7 操作系统

这个问题请多多指教。

我在配置中看不到任何错误。可能是 Apache 2.4 和 JK 的问题。

还有另一种配置负载均衡器的方法,使用 mod_proxy:

https://serverfault.com/questions/604615/apache-mod-proxy-balancer-tomcat-load-balancing-should-not-redirect-until-we

这里:

http://chandank.com/application-server/tomcat/tomcat-load-balancer-using-mod-proxy-and-session-sticky

我遇到了同样的问题,我的配置几乎和你一样。

我在 httpd.conf 文件中添加了 VirtualHost 映射,它开始工作了。

<VirtualHost *:443>
  ServerName localhost
  JKMount /TCSession/* lb
</VirtualHost>