Redirect IIS 10重写为http和https的内部端口

Redirect IIS 10重写为http和https的内部端口,redirect,iis,https,url-rewriting,reverse-proxy,Redirect,Iis,Https,Url Rewriting,Reverse Proxy,我在Windows服务器的端口8080上运行了一个node js应用程序,可以通过http://localhost:8080。我想使用一些子域,如app.mydomain.com,而不使用服务器外部的端口号来打开这个node.js应用程序。我想完全将所有流量重写到此端口,并且没有子目录的过滤器 我已经在我的IIS上安装了ARRv3_0和urlrewrite2,并且也重新启动了服务器。还在服务器上安装了证书并分配给此IIS网站。目前,我将此文件用作我的web.config: <?xml ve

我在Windows服务器的端口
8080
上运行了一个node js应用程序,可以通过
http://localhost:8080
。我想使用一些子域,如
app.mydomain.com
,而不使用服务器外部的端口号来打开这个node.js应用程序。我想完全将所有流量重写到此端口,并且没有子目录的过滤器

我已经在我的IIS上安装了
ARRv3_0
urlrewrite2
,并且也重新启动了服务器。还在服务器上安装了证书并分配给此IIS网站。目前,我将此文件用作我的
web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Reverse Proxy to node server" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="http://localhost:8080/{R:1}" />
                </rule>              
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

当我同时使用
http
https
打开域时,我得到了404


您需要注意以下几点

  • 您需要在ARR.ARR->Server proxy Settings->Enable proxy中检查启用代理。
  • 根据代理规则,当您从一个URL代理到另一个URL时,只会重写域,因此您必须确保URL中包含页面信息,例如http://initialURL/index.html,这将是对的最后一次重写http://localhost:8080/index.html. 如果不想添加index.html,可以启用默认文档并将index.html移动到第一个文档。

  • 错了,谢谢。1号已经解决了我的问题。任何人都有这个问题:你应该首先安装ARR。然后从IIS左侧边栏中选择服务器名称,并打开
    应用程序请求路由缓存
    。如上面的屏幕截图所示,只需启用第一个复选框。