我在 IIS 后面安装了 Tomcat 作为 Java 应用服务器。使用以下规则,我可以很好地重写静态页面,但遗憾的是,Websocket 连接从未建立:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<webSocket enable="false"/>
<rewrite>
<rules>
<rule name="Redirect HTTP to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/foo/{R:1}" redirectType="SeeOther" />
</rule>
<rule name="Redirect from IIS to Tomcat" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{CACHE_URL}" pattern="^(.*)://" />
</conditions>
<action type="Rewrite" url="{C:1}://tomcat.contoso.com/foo/{R:1}" />
</rule>
</rules>
<outboundRules>
<rule name="Redirect from Tomcat to IIS" preCondition="ResponseIsHtml">
<match filterByTags="A, Form, Img" pattern="^(.*)://tomcat.contoso.com/foo/(.*)" />
<action type="Rewrite" value="{R:1}://apps.contoso.com/foo/{R:2}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
有人成功了吗? URL 重写是否甚至支持 websockets (ws:// & wss://) 反向代理?