3

在使用两个 Tomcat 实例设置负载均衡器时出现以下错误:

[信息] mod_jk.c (3189):mod_jk/1.2.30 已初始化 [错误] jk_uri_worker_map.c (506):在 uri 地图后处理中找不到名为“loadmanager”的工作人员。

以下是我的配置设置:

httpd.conf 更改

# Include mod_jk configuration file
Include conf/mod_jk.conf

mod_jk.conf

LoadModule jk_module modules/mod_jk.so    
JkWorkersFile conf/workers.properties    
JkLogFile logs/mod_jk.log    
JkLogLevel info    
JkLogStampFormat  "[%a %b %d %H:%M:%S %Y]"    
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories    
JkRequestLogFormat "%w %V %T"    
JkMount /TestLB1/ loadmanager    
JkMount /TestLB1/* loadmanager    
JkShmFile logs/jk.shm

worker.properties

worker.list=loadmanager

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

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

worker.loadmanager.type=lb
worker.loadmanager.balance_workers=tomcat1,tomcat2
worker.loadmanager.sticky_session=True

在 Tomcat 的 server.xml 中,我也将 jvmRoute 属性设置为 Engine

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

两个 Tomcat 实例均已启动并运行良好,分别使用 AJP 端口 18081 和 28081。

但是在启动 Apache httpd.exe 时,mod_jk 日志文件总是显示上述错误,当我尝试通过http://localhost/TestLB1访问我的 Web 应用程序时,什么也没有出现。

任何解决方案?

4

2 回答 2

4

有问题....问题出在我正在编辑worker.properties文件的文本编辑器中,它向文件添加了一些特殊字符。我只在记事本中打开文件时发现了它们。删除所有不需要的字符后,一切都很完美。

于 2010-09-09T13:42:50.280 回答
0

使用像记事本++这样的优秀文本编辑器创建您的 worker.properties 文件。不这样做可能会添加一些看不见的特殊字符,并且 mod_jk 不会解析worker.properties 文件。

于 2019-04-06T21:19:32.503 回答