【问题标题】:IIS AAR - URL Rewrite for reverse proxy - how to send HTTP_HOSTIIS ARR - 反向代理的 URL 重写 - 如何发送 HTTP_HOST
【发布时间】:2013-01-28 07:35:36
【问题描述】:

尝试在多个后端 IIS 服务器前使用 AAR 作为反向代理。

  • 分配给运行 IIS/AAR 的服务器的一个公共 IP 地址

  • 然后设置出站 URL 重写规则以重定向到其中之一 多个后端服务器,具体取决于主机名。

有点作用,但总是返回后端服务器的默认站点(不是映射到主机名的站点),因此看起来主机名 (HTTP_HOST) 没有从代理服务器传递到后端服务器。

(我已经通过编辑主机验证绕过反向代理,后端服务器返回绑定到主机头的正确站点)

这是一个规则示例(192.168.0.99 是内部服务器,site.myco.com 是主机名)

    <rewrite>
        <rules>
            <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                <match url="(.*)" />
                <action type="Rewrite" url="http://192.168.1.99/{R:1}" />                   
            </rule>
        </rules>
    </rewrite>

尝试过放置服务器变量

    <!-- Guessing server.myco.com is hard coded -->
    <serverVariables>
        <set name="HTTP_HOST" value="server.myco.com" />
    </serverVariables>

    <!-- Guessing picked up dynamically from incoming request host header -->
    <serverVariables>
        <set name="HTTP_HOST" value="{HTTP_HOST}" />
    </serverVariables>

但可惜总是返回默认绑定 - 有什么想法吗?

【问题讨论】:

    标签: asp.net iis url-rewriting iis-7.5 arr


    【解决方案1】:

    这篇文章有答案 - Modifying headers with IIS7 Application Request Routing

    需要启用 preserveHostHeader - 在 UI 中看不到你是如何做到的,但这是可行的

    从命令行运行它来更新 Machine/webroot/apphost 配置

    %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/proxy -preserveHostHeader:true /commit:apphost
    

    【讨论】:

    • 以前绝对不知道这个!
    • 我在 IIS 8.5 的 UI 中找到了这个:服务器(或站点)>配置编辑器>system.webServer>代理。不过,将上述内容复制到运行命令或命令行窗口更容易/更快。
    • 如果它们在同一台服务器上,这将不起作用,因为它会创建一个重写循环。
    【解决方案2】:

    我的猜测是您的服务器不允许您在重写 URL 时更改服务器变量 HTTP_HOST

    在应用 URL 重写的网站级别:

    然后单击右侧选项卡上的Add... 链接并添加您的HTTP_HOST 变量:

    【讨论】:

    • 不错的猜测,但已经完成了 - 如果它没有告诉你,你会得到一个 500.500 错误。
    【解决方案3】:

    您可以使用 GUI 来执行此操作。在根服务器上单击配置编辑器,转到 System.webServer -> 代理并将 preserveProxyHeader 设置为 true。

    【讨论】:

      猜你喜欢
      • 2016-08-27
      • 1970-01-01
      • 1970-01-01
      • 2019-06-21
      • 2020-09-05
      • 2022-12-29
      • 1970-01-01
      • 2011-11-07
      • 2015-09-04
      相关资源
      最近更新 更多