0

到目前为止,我无法使用 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 选项和内存分配!

我愿意接受评论或更好的解决方案..

4

1 回答 1

0

当你这样反转它时它会起作用吗?

/app1/*=loadBalancer2
/*=负载平衡器1
于 2012-03-13T18:53:26.803 回答