使用应用程序请求路由的试点程序管理
作者: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 重写规则:
启动 IIS 管理器。
选择服务器场 pilotSiteServers。
将显示以下图标:
双击“路由规则”。
由于此方案涉及多个服务器场,并且需要根据 HTTP 请求头进行条件匹配,因此需要使用公开了额外选项的 URL 重写 UI 进行更改。 单击“高级路由”下的“URL 重写”。
请注意,已创建两个规则,但必须对其进行更改。
本演练中,规则的顺序很重要。 如果 ARR_productionSiteServers_loadbalance 高于 ARR_pilotServers_loadbalance,则可以在选择规则后使用“上移”或“下移”更改规则的顺序。
选择“ARR_pilotSite_Servers_loadbalance”,然后单击“操作”窗格中的“编辑...”。
应指定使用 IE 并安装了 .NET 3.5 的客户端,以转到 pilotSiteServers 服务器场。 可通过添加条件来执行此操作。 单击“添加条件”,然后单击“添加...”。
输入“{HTTP_USER_AGENT}”作为“条件输入”,输入“*MSIE*”作为“模式”。 此条件检查客户端是否正在使用 IE。
添加另一个条件以检查 .NET 版本。 单击“添加...”,然后输入“{HTTP_USER_AGENT}”作为“条件输入”,输入“*.NET CLR 3.5*”作为“模式”。
最后,取消选中“停止处理后续规则”复选框,然后单击“应用”以保存更改。
如上所述,规则的顺序很重要。 这是因为在未选择“停止处理后续规则”时,URL 重写会按顺序处理规则。 因此,在此例中,将首先考虑第一个规则 ARR_pilotSiteServers_loadbalance。 此规则会尝试匹配客户端是否使用 IE 并安装了 .NET 3.5。 如果是,请求将转发到 pilotSiteServers 服务器场。 由于未选中“停止处理后续规则”复选框,因此将处理第二个规则,ARR_productionSiteServers_loadbalance,此规则会将所有剩余请求路由到 productionSiteServers 服务器场。
使用命令行更改 URL 重写规则:
使用管理员特权打开命令提示符。
导航到
%windir%\system32\inetsrv
。若要更改 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
若要取消选择 ARR_pilotSiteServers_loadbalance 的“停止处理后续规则”,请输入:
appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_pilotSiteServers_loadbalance'].stopProcessing:"False" /commit:apphost
总结
现在,你已成功更改了 URL 重写中的规则,并利用应用程序请求路由,仅将一部分用户路由到试点站点。 有关其他应用程序请求路由的属性和功能,请参阅其他应用程序请求路由演练。