使用应用程序请求路由的试点程序管理

作者:IIS 团队

概述

本主题引导读者完成使用应用程序请求路由启动和管理试点或 beta 版本程序的步骤。 应用程序请求路由可用于将适当的用户定向并路由到试点站点,也可用于限制和管理路由到试点站点的流量。 本演练重点介绍如何使用应用程序请求路由,根据用户配置文件将特定请求路由到试点站点。

目标

配置应用程序请求路由,以管理和降低启动试点程序的风险。

先决条件

本演练要求满足以下先决条件:

  • IIS 7.0 或更高版本(在 Windows 2008(任何 SKU)或更高版本上)。
  • Microsoft 应用程序请求路由版本 1 和依赖模块。
  • 至少有四个包含工作站点和应用程序的内容服务器。 两台服务器将用于模拟生产站点,另外两台服务器将模拟试点站点。
  • 在安装了 .NET 3.5 的计算机上有 Microsoft Internet Explorer 的替代浏览器(如 Firefox)。 (此设置仅用于测试目的。)

按照这篇文档中概述的步骤安装应用程序请求路由。

另一个先决条件是,读者已按照定义和配置应用程序请求路由 (ARR) 服务器组中所述的步骤定义并配置了两个服务器场。 一个服务器场表示生产环境,另一个服务器场表示试点环境。

步骤 1 - 更改 URL 重写规则以基于用户配置文件路由请求

在此步骤中,将更改 URL 重写规则,以便仅将已安装 .NET 3.5 并使用 Microsoft Internet Explorer (IE) 的用户路由到定义为 pilotSiteServers 的试点站点。 将所有其他用户路由到定义为 productionSiteServers 的生产站点

使用 UI 更改 URL 重写规则:

  1. 启动 IIS 管理器。

  2. 选择服务器场 pilotSiteServers

  3. 将显示以下图标:

    服务器场窗格中图标的屏幕截图。

  4. 双击“路由规则”

  5. 由于此方案涉及多个服务器场,并且需要根据 HTTP 请求头进行条件匹配,因此需要使用公开了额外选项的 URL 重写 UI 进行更改。 单击“高级路由”下的“URL 重写”

    路由规则中“高级路由”部分下的 U R L 重写的屏幕截图。

  6. 请注意,已创建两个规则,但必须对其进行更改。

    U R L 重写窗格的屏幕截图,其中包含预设的默认规则。

  7. 本演练中,规则的顺序很重要。 如果 ARR_productionSiteServers_loadbalance 高于 ARR_pilotServers_loadbalance,则可以在选择规则后使用“上移”或“下移”更改规则的顺序

  8. 选择“ARR_pilotSite_Servers_loadbalance”,然后单击“操作”窗格中的“编辑...”

    “R R 试点站点服务器负载均衡”的“编辑规则”窗格的屏幕截图,其中选择了默认设置。

  9. 应指定使用 IE 并安装了 .NET 3.5 的客户端,以转到 pilotSiteServers 服务器场。 可通过添加条件来执行此操作。 单击“添加条件”,然后单击“添加...”

    空的“添加条件”对话框的屏幕截图。

  10. 输入“{HTTP_USER_AGENT}”作为“条件输入”,输入“*MSIE*”作为“模式”。 此条件检查客户端是否正在使用 IE。

    条件输入的屏幕截图,如大括号 H T T P 下划线 U标准版R 下划线代理大括号和模式作为星号 M I S E 星号。

  11. 添加另一个条件以检查 .NET 版本。 单击“添加...”,然后输入“{HTTP_USER_AGENT}”作为“条件输入”,输入“*.NET CLR 3.5*”作为“模式”

    另一个条件的屏幕截图,其中模式为星号点 NET 空间 C L R 空间 3 点 5 星号。

  12. 最后,取消选中“停止处理后续规则”复选框,然后单击“应用”以保存更改

    “操作属性”部分后未检查停止处理后续规则的屏幕截图。

如上所述,规则的顺序很重要。 这是因为在未选择“停止处理后续规则”时,URL 重写会按顺序处理规则。 因此,在此例中,将首先考虑第一个规则 ARR_pilotSiteServers_loadbalance。 此规则会尝试匹配客户端是否使用 IE 并安装了 .NET 3.5。 如果是,请求将转发到 pilotSiteServers 服务器场。 由于未选中“停止处理后续规则”复选框,因此将处理第二个规则,ARR_productionSiteServers_loadbalance,此规则会将所有剩余请求路由到 productionSiteServers 服务器场

使用命令行更改 URL 重写规则:

  1. 使用管理员特权打开命令提示符

  2. 导航到 %windir%\system32\inetsrv

  3. 若要更改 ARR_pilotSiteServers_loadbalance 规则以检查 HTTP_USER_AGENT 中的 IE 和 .NET 3.5,请输入

    appcmd.exe set config  -section:system.webServer/rewrite/globalRules /+"[name='ARR_pilotSiteServers_loadbalance'].conditions.[input='{HTTP_USER_AGENT}',pattern='*MSIE*']" /commit:apphost
    
    appcmd.exe set config  -section:system.webServer/rewrite/globalRules /+"[name='ARR_pilotSiteServers_loadbalance'].conditions.[input='{HTTP_USER_AGENT}',pattern='*.NET CLR 3.5*']" /commit:apphost
    
  4. 若要取消选择 ARR_pilotSiteServers_loadbalance 的“停止处理后续规则”,请输入

    appcmd.exe set config  -section:system.webServer/rewrite/globalRules /[name='ARR_pilotSiteServers_loadbalance'].stopProcessing:"False"  /commit:apphost
    

总结

现在,你已成功更改了 URL 重写中的规则,并利用应用程序请求路由,仅将一部分用户路由到试点站点。 有关其他应用程序请求路由的属性和功能,请参阅其他应用程序请求路由演练