我们确实有一个 Apache-Tomcat 负载均衡器,其中包含 1 个 Apache 负载均衡器和 3 个 Tomcat worker。 我们认为的问题是我们的配置存在问题,导致负载均衡器检测到处于错误状态的工作人员,然后停止该工作人员的所有会话。
由于我们的许多用户面临会话超时消息,他们必须重新登录到应用程序。
注意:该应用程序是一种审批管理应用程序,用户需要在其上上传/下载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
任何有想法并能为我们提供解决方案的人都会对我们有很大的帮助。
如果需要任何进一步的细节,请告诉我们......