使用SSL进行IIS HTTP / S重写以卸载非标准本地端口

时间:2018-06-28 15:32:55

标签: redirect iis url-rewriting iis-8 arr

好,所以我快要死了。这是我的情况:

  • IIS在80和443上运行的站点- external.foo.com https://external.foo.com

  • 一个单独的Web服务正在同一节点上的端口801上运行一个应用程序-“ web app3”。

我在IIS中为 external.foo.com/app3 创建了一个站点。我需要将来自 http(s)://external.foo.com/app3 的所有流量都路由到具有SSL卸载功能的本地端口801-因此从客户端到IIS的连接是SSL,但是IIS与本地服务的连接是通过端口801的http。

这是我在IIS中的foo / app3上设置的规则,但是它不起作用,我觉得我尝试了1000项无法完全达到目的的操作。

<rewrite>
    <rules>
        <rule name="HTTP and HTTPS to local Port 801 w/ offloading" enabled="true" stopProcessing="true">
             <match url="(.*)" ignoreCase="true" />
             <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
             </conditions>
                <action type="Redirect" url="https://external.foo.com:801/{R:0}" appendQueryString="false" />
          </rule>
       </rules>
 </rewrite>

老实说,我的问题在于必须在请求中指定端口801,但我对该区域并不熟悉,无法对此做出正面或反面的解释。在我的几次测试中,我看到同时指定了端口80或443的位置,这些端口不会到达app3。

我还尝试了服务器场/负载平衡路由和规则,但老实说,这让我更加困惑...在某一时刻,我可以让我所有其他站点重定向并加载app3,但不能重定向app3!以下是该规则:

<rewrite>
   <globalRules>
         <clear />
            <rule name="ARR_App3Proxy_loadbalance" enabled="true" patternSyntax="ExactMatch" stopProcessing="true">
                <match url="*external.foo.com/app3" />
                <action type="Rewrite" url="http://App3Proxy/{R:0}" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
              </conditions>
         </rule>
    </globalRules>
</rewrite>

我是新手-帮忙!

更新

好吧,我现在已将所有站点都通过HTTPS重定向到app3,并且看来使用ARR卸载工作正常。全局规则如下。

<proxy enabled="true" />
        <rewrite>
            <globalRules>
                <clear />
                <rule name="ARR_App3Proxy_loadbalance" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
                    <match url="*" />
                    <action type="Rewrite" url="http://App3Proxy/{R:0}" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    </conditions>
                </rule>
            </globalRules>
        </rewrite>

现在,我只需要专门定位 external.foo.com/app3 ,这样我的其他IIS站点就可以排除在外...我正在研究和测试,但将为您提供任何帮助非常感谢。

0 个答案:

没有答案