我们有一个由 Tomcat 7 在端口 8080 上提供服务的应用程序。我们希望用户使用 SSL。因此,我们使用 IIS 8 作为反向代理,将连接从端口 443 代理到端口 8080。
这就是我们想要实现的目标: https://app.example.com==> app.example.com:8080/应用程序名称/
以下是 URL 重写规则
<rule name="Tomcat Reverse Proxy" enabled="true" stopProcessing="true">
<match url="(.*)" ignoreCase="false"/>
<action type="Rewrite" url="http://localhost:8080/AppName/{R:1}" logRewrittenUrl="true" />
</rule>
当执行此规则时,IIS 不会代理请求,而是进行重定向,我看到http://localhost:8080/应用程序名称/在浏览器的地址栏中。
问题是应用程序名称。IIS URL 重写模块不喜欢操作中的大写字母。但是,Tomcat 7 区分 URL 大小写,如果我在重写规则中使用“appname”,Tomcat 会抛出 404。
有什么方法可以让 IIS 在重写时顺利处理大写 url?