0

我正在尝试在 IIS 中的单个域后面配置多个 Tomcat (7) 实例。Tomcat 实例都在不同的端口上运行。我已经安装了 Tomcat isapi_rediect.dll 并配置了 IIS。

一切都与重定向器一起工作,除了(你知道它即将到来)我被告知“所有其他流量必须映射到两个实例之一(它们是非常不同的应用程序)。说所有请求可能更准确除了一个特定的模式需要映射到一个工人,只有特定的模式(/rpt)需要去另一个工人。

我在workers.properties中定义了两个工人:

worker.list=ajp13_1,ajp13_2
worker.ajp13_1.port=8009
worker.ajp13_2.port=8010

以及 uriworkermap.properties 中的以下内容:

/wxx|/*=ajp13_1
/rpt|/*=ajp13_2

有了这个,一切似乎都很好。除了一些(相当多的)不包括 wxx 范围的请求。我真的需要将 rpt 和所有子内容映射到 ajp3_2,并将所有其他请求映射到 ajp3_1。

如果我添加

/|*=ajp13_1

然后 ajp3_2 实际上变得无法访问,并且通配符匹配甚至将 /rpt/* URI 映射到 ajp3_1。

有什么办法可以做我想做的事吗?我真的很感激任何帮助——我花了太多时间一遍又一遍地阅读相同的参考资料。

4

1 回答 1

0

tomcat 连接器分两次进行匹配。第一遍包括主机,第二遍不包括。因此,如果您有如下要求:

http://www.mydomain.com/rpt/somepage.jsp

连接器将首先尝试将“/www.mydomain.com/rpt/somepage.jsp”与可用映射匹配,如果它们都不匹配,它将尝试“/rpt/somepage.jsp”。这意味着默认映射 ("/*") 将是第一次通过时唯一匹配的内容,因为您的其他映射都不占主机。我相信您可以通过以下方式达到预期的效果:

/*/rpt|/*=ajp13_2
/|*=ajp13_1
于 2013-09-04T16:50:07.297 回答