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

在共享托管环境中使用应用程序请求路由 (ARR) 引入了新的部署体系结构,为共享托管商提供了额外的优势和机会。 此方案由应用程序请求路由中的名为主机名关联的功能启用。 有关主机名关联功能及其与共享托管的关系的详细信息,请参阅使用应用程序请求路由的共享托管部署

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

表示在其中部署 R R 的共享托管环境的示意图。

目标

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

先决条件

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

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

  • Microsoft 应用程序请求路由版本 1 和依赖模块。

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

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

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

另一个先决条件是,已遵循定义和配置应用程序请求路由 (ARR) 服务器组中所述的步骤定义和配置了服务器场

步骤 1 - 启用主机名关联

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

使用 UI 启用主机名关联

  1. 启动 IIS Manager。

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

  3. 将显示以下图标:

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

  4. 双击“服务器关联”

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

    显示“主机名相关性”对话框的屏幕截图。使用主机名检查。

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

    • Microsoft.Web.Arr.HostNameRoundRobin
    • Microsoft.Web.Arr.HostNameMemory

    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 作为服务器场的名称,并将 www.contoso.com 主机名的服务器数设置为 2)

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

总结

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