使用应用程序请求路由的共享托管 (ARR)

在共享托管环境中使用应用程序请求路由(ARR)引入了新的部署体系结构,为共享主机提供额外的优势和机会。 此情景由应用程序请求路由中的一个名为“主机名相关性”的功能来实现。 有关主机名相关性功能及其与共享托管的关系的详细信息,请参阅 使用应用程序请求路由的共享托管部署

本主题引导你完成在应用程序请求路由中配置主机名相关性功能的步骤,如下所示:

表示部署了 A R R 的共享托管环境的示意图。

目标

在共享托管环境中配置应用程序请求路由。

先决条件

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

  • Windows 2008(任何 SKU)或更高版本上的 IIS 7.0 或更高版本。

  • Microsoft 应用程序请求路由 1.0 版及其依赖模块。

  • 至少有两个具有工作站点和应用程序的应用程序服务器。

    • 服务器应配置为使用共享配置和共享内容。 有关共享配置的详细信息,请参阅 共享配置 文章。
    • 服务器上的站点应使用主机名绑定。

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

作为另一个先决条件,必须按照 “定义和配置应用程序请求路由”(ARR)服务器组中所述的步骤来定义和配置服务器场。

步骤 1 - 启用主机名相关性

在继续操作之前,请确保使用配置了共享配置和共享内容的应用程序服务器创建服务器场。 应用程序服务器上的站点还应使用主机名绑定。

使用 UI 启用主机名相关性

  1. 启动 IIS 管理器。

  2. 选择为此演练创建的服务器场。

  3. 将显示以下图标:

    显示服务器场图标的“I S 管理器”窗口的屏幕截图。

  4. 双击 “服务器亲和性”

  5. 若要启用主机名相关性,请选择“ 使用主机名”,然后单击“ 应用”。

    显示“主机名绑定”对话框的屏幕截图。已勾选“使用主机名”选项。

    请注意,有两个服务提供商用于确定主机名应定向到哪个服务器。 这不同于负载均衡算法,提供程序仅用于主机名关联功能。 这两个服务提供商是:

    • Microsoft.Web.Arr.HostNameRoundRobin
    • Microsoft.Web.Arr.HostNameMemory(Microsoft Web ARR 主机名内存)

    Microsoft.Web.Arr.HostNameRoundRobin 尝试在轮循机制中均匀分配关联主机名的数量。 使用此提供程序对应用程序服务器没有要求。

    Microsoft.Web.Arr.HostNameMemory 会尝试根据应用程序服务器上的可用内存量分配关联主机名的数量,其中具有最多可用内存的服务器将使用下一个主机名分配。 此提供程序使用 WMI 查询可用内存(定义为已提交内存除以物理内存的比值)。 因此,应用程序服务器必须是 Windows 服务器,并且必须在应用程序服务器上进行其他配置,以允许远程 WMI 查询。 有关更多详细信息,请参阅 如何在应用程序服务器上为 HostNameMemory 关联提供程序配置 WMI 服务

    超时值用于确定在与同一主机名的最后一个请求之后,应该在多长时间内重置关联。 此值应设置为与应用程序服务器上的应用程序池空闲超时值相同的值。 默认情况下,此值为 20 分钟。

  6. 若要验证此功能,请单击“ 显示路由表”。

    默认视图路由表对话框的屏幕截图,其中未显示服务器地址。

  7. 键入主机的名称,然后单击“ 按主机名查找”。 显示的服务器地址是主机名关联到的位置。

在命令行中启用主机名亲和性

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

  2. 转到 %windir%\system32\inetsrv

  3. 若要启用主机名相关性,请输入(以下示例使用 myServerFarm 作为服务器场的名称):

    appcmd.exe set config  -section:webFarms /[name='myServerFarm'].applicationRequestRouting.affinity.useHostName:"True"  /commit:apphost
    

步骤 2 - 指定每个主机名要使用的服务器数

默认情况下,所有主机名都可以使用一个应用程序服务器。 但是,如果站点所有者需要额外的容量,则宿主可以指定站点可以按主机名使用的应用程序服务器数。

使用 UI 指定要使用的服务器数量

  1. “服务器相关性 ”页上,单击“ 高级设置”。

    默认“高级设置”对话框的屏幕截图。主机名称行为空。

  2. 在“ 主机名 ”列中,键入主机名。 此字段为必填字段。

  3. “已分配的服务器数 ”列中,键入此主机名可以使用的服务器数。

  4. 备用主机名 是一个可选字段,可用于指定应像 主机名列中的值 一样对待的其他主机名。 例如,网站所有者可能具有同一站点的多个 DNS 条目。 在这种情况下,他希望 ARR 以相同的方式处理多个 DNS 条目,以便只有一个工作进程在这两个域名的应用程序服务器上启动。

  5. 若要保存更改,请单击“ 确定”。

  6. 若要验证此功能,请单击“ 显示路由表”。

    显示空的视图路由表对话框的屏幕截图。

  7. 键入主机的名称,然后单击“ 按主机名查找”。 返回的服务器地址数将与为 分配的服务器数指定的地址相同。 这些是主机名可关联到的服务器。

通过命令行指定要使用的服务器数量

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

  2. 转到 %windir%\system32\inetsrv

  3. 若要指定每个主机名的服务器数,请输入(以下示例使用 myServerFarm 作为服务器场的名称,并将主机名的服务器数设置为 2 www.contoso.com ):

    appcmd.exe set config  -section:webFarms /+"[name='myServerFarm'].applicationRequestRouting.affinity.[name='www.contoso.com',servers='2']" /commit:apphost
    

总结

现已在共享托管方案的应用程序请求路由中成功配置主机名相关性功能。 有关其他应用程序请求路由属性和功能,请参阅其他应用程序请求路由 演练