到目前为止,我无法使用 Apache Jakarta (Tomcat) 连接器负载平衡功能解决一个用例。
我有一个 IIS 站点,它附加了一个 Apache Tomcat 连接器。我需要根据请求的 URI 将流量“转发”到不同的 Tomcat。当您只有具有特定上下文的应用程序(如 /app1、/app2 等)时,这很简单。我的问题是我有一个位于 / (ROOT) 的应用程序(在一个 Tomcat 中)和另一个位于 /app1 的应用程序(在另一个 Tomcat 中)。
我在 uriworkermap.properties 中尝试了以下配置:
/*=loadBalancer1
/app1/*=loadBalancer2
但这不起作用,因为“loadBalancer1”占用了所有流量。“loadBalancer2”被忽略,这是有道理的,因为 /app1/* 匹配 /* (正则表达式)。
我还尝试添加排除项:
/*=loadBalancer1
!/app1/*=loadBalancer1
/app1/*=loadBalancer2
但这也不起作用,因为“loadBalancer1”仍在占用所有流量,只是忽略了“/app1/*”URI 模式。“loadBalancer2”再次被忽略。
任何建议,请记住我不能有 2 个 IIS 站点,也不能将位于 / (ROOT) 的应用程序移动到 Tomcat 中的不同上下文路径?
谢谢
编辑: 我不只使用一个 Apache Tomcat 连接器,而是为同一 IIS 站点上的每个 Tomcat 使用 1 个连接器。
uriworkermap.properties #1:适用于应用程序位于 / (ROOT) 的 Tomcat
/*=wlb
!/app1/*=wlb
uriworkermap.proerties #2:适用于 Tomcat,应用程序位于 /app1
/app1/*=wlb
连接器 #1 将忽略 URI "/app1/*" 上的流量,但连接器 #2 会捕获它(反之亦然)。
现在我可以为我的应用程序设置不同的 VM 选项和内存分配!
我愿意接受评论或更好的解决方案..