Apache-Tomcat 9使用mod_jk负载均衡器:用户会话终止,mod_jk日志文件生成错误,如何解决……?

mznpcxlj  于 2023-05-29  发布在  Apache
关注(0)|答案(1)|浏览(154)

我们有一个Apache-Tomcat负载均衡器,其中包含1个Apache负载均衡器和3个Tomcat工作进程。我们认为的问题是我们的配置有问题,因为负载均衡器检测到工作进程处于错误状态,然后停止该工作进程上的所有会话。
由于我们的许多用户面临会话超时消息,他们必须重新登录到应用程序。
注:该应用程序是一种审批管理应用程序,用户需要上传/下载pdf、excel、word等。文件。
我们觉得我们的配置中缺少了一些东西,在搜索了许多博客之后,我们仍然无法解决它。
这里是我的一些配置文件的细节,你可以参考,以帮助我们。

workers.properties

worker.list=loadbalancer,status

#setup node1
worker.node1.port=8109
worker.node1.host=<ip of worker1>
worker.node1.type=ajp13
worker.node1.lbfactor=1

#setup node2
worker.node2.port=8209
worker.node2.host=<ip of worker2>
worker.node2.type=ajp13
worker.node2.lbfactor=1

#setup node3
worker.node3.port=8309
worker.node3.host=<ip of worker3>
worker.node3.type=ajp13
worker.node3.lbfactor=1

#setup the load-balancer
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2,node3
worker.loadbalancer.sticky_session=True

# Status worker for managing load balancer
worker.status.type=status

mod_jk日志

[Wed May 17 16:16:24 2023] [30113:139835845805824] [error] ajp_get_reply::jk_ajp_common.c (2326): (node2) Tomcat already send headers
[Wed May 17 16:16:24 2023] [30113:139835845805824] [error] ajp_service::jk_ajp_common.c (2767): (node2) sending request to tomcat failed (unrecoverable),  (attempt=1)
[Wed May 17 16:16:24 2023] [30113:139835845805824] [info] service::jk_lb_worker.c (1600): service failed, worker node2 is in error state
[Wed May 17 16:16:24 2023] [30113:139835845805824] [error] service::jk_lb_worker.c (1625): unrecoverable error 502, request failed. Tomcat failed in the middle of request, we can't recover to another instance.
[Wed May 17 16:16:24 2023] [30113:139835845805824] [error] service::jk_lb_worker.c (1685): All tomcat instances failed, no more workers left
[Wed May 17 16:16:24 2023] [30113:139835845805824] [info] jk_handler::mod_jk.c (2991): Service error=0 for worker=loadbalancer

任何有任何想法并能为我们提供解决方案的人都将对我们有很大的帮助。
如果需要进一步的细节,请告诉我们……

tjjdgumg

tjjdgumg1#

我们需要查看conf/server.xml文件来解决这个问题。但是你可以检查你的3个tomcatserver.xml的ajp连接器部分。对于每个Tomcat服务器,“Port”和“Redirectport”值需要不同。
例如:

Tomcat node1 server.xml
<Connector protocol="AJP/1.3" port="9009" redirectPort="8443" secretRequired="false" />
<Engine name="Catalina" defaultHost="127.0.0.1" jvmRoute="node1">

Tomcat Node2 server.xml
<Connector protocol="AJP/1.3" port="9010" redirectPort="8444" secretRequired="false" />
<Engine name="Catalina" defaultHost="127.0.0.1" jvmRoute="node2">

Tomcat Node3 server.xml
<Connector protocol="AJP/1.3" port="9011" redirectPort="8445" secretRequired="false" />
<Engine name="Catalina" defaultHost="127.0.0.1" jvmRoute="node3">

相关问题