通过IIS ARR反向代理区分tomcat应用程序响应重写的被调用的URL

嗨到社区在Serverfault!

在尝试configurationIIS以在同一台计算机上的两个Tomcat服务器上打开相应的pipe理器APP时遇到问题。

当我直接通过http://servername:8081/managerhttp://servername:8080/manager (另一个Tomcat)调用站点时,一切工作正常。

当我尝试将请求redirect到http://servername/manager7到第一个Tomcat和http://servername/manager8到第二个服务器时,恶梦开始了。 HTML Resonse中的链接总是包含/ manager7 / …即使我调用URL http://servername/manager8

以下是我的重写规则。 我把它们设置在服务器级别。

 <rewrite> <globalRules> <clear /> <rule name="Tomcat7" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> <match url="*7*" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> <action type="Rewrite" url="http://wwwts02:8081/{R:1}{R:2}" /> </rule> <rule name="Tomcat8" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> <match url="*8*" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> <action type="Rewrite" url="http://wwwts02:8080/{R:1}{R:2}" /> </rule> </globalRules> <outboundRules> <clear /> <rule name="Tomcat8" preCondition="Recognize Tomcat8" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> <match filterByTags="A, Form, Img, Link, Script" pattern="/manager*" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="true"> </conditions> <action type="Rewrite" value="/manager8{R:1}" /> </rule> <rule name="Tomcat7" preCondition="Recognize Tomcat7" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> <match filterByTags="A, Form, Img, Link, Script" pattern="/manager*" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="true"> </conditions> <action type="Rewrite" value="/manager7{R:1}" /> </rule> <preConditions> <preCondition name="Recognize Tomcat8"> <add input="{REQUEST_URI}" pattern="(.)*/(.*)8/(.*)" /> </preCondition> <preCondition name="Recognize Tomcat7"> <add input="{REQUEST_URI}" pattern="(.*)/(.*)7(.*)" /> </preCondition> </preConditions> </outboundRules> </rewrite> 

任何人都可以想到我有其他的select?
我也试过了微软提供的ISAPIRedirect.dll,但它似乎根本不支持重写HTTP响应。

请指导我,接下来要做什么。
任何帮助将不胜感激,并随时要求进一步的信息,你需要回答。

对不起,因为我是德国人,可能我的英语不好。

模式匹配*7*无效。 它表示<nothing><any times>后跟<7><any times> ,更清晰:它匹配所有事物,因为包含0 or more 7字符。

你可能想要匹配某事 例如(.*7.*) – 允许用{R:1}引用的括号。