使用应用程序请求路由 (ARR) 服务器的多个实例

作者:Won Yoo

概述

本主题引导你完成配置适用于 IIS 7.0 及更高版本的 Microsoft External Cache 的步骤,该缓存可用于管理应用程序请求路由 (ARR) 服务器的多个实例之间的主机名关联数据。

请注意,仅当满足以下条件时,才需要适用于 IIS 的 External Cache:

  1. 使用了主机名关联功能。
  2. 环境中使用了多个 ARR 服务器。

External Cache 是适用于 IIS 的基于磁盘的缓存模块。

目标

若要配置适用于 IIS 的 Microsoft External Cache 并将其与应用程序请求路由配合使用,请执行以下操作:

显示两个 A R R 服务器的配置及其与共享内容服务器和文件共享服务器的连接的组织结构图。

先决条件

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

  • 在 Windows 2008(任何 SKU)或更新系统上安装至少两个 IIS 7.0 或更高版本。
  • Microsoft 应用程序请求路由版本 1 和依赖模块(其中包括 Microsoft External Cache 版本 1)。
  • 至少有两个包含工作站点和应用程序的应用程序服务器。
  • 有一个文件共享,其中 ARR 可以读取和写入文件。

如果尚未安装应用程序请求路由版本 1,请在以下位置下载它:

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

必须至少有两个 ARR 服务器和两个应用程序服务器。 可以使用共享配置来保持 ARR 服务器以相同的方式配置,并使用另一个共享配置使应用程序服务器保持同步。有关共享配置的详细信息,请参阅本文

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

步骤 1 - 启用 External Cache。

若要使用 UI 启用 External Cache,请执行以下操作:

  1. 启动 IIS Manager。
  2. 选择为此演练创建的服务器场。
  3. 将显示以下图标:
    I S 管理器中的“服务器场”选项卡的屏幕截图。
  4. 双击“服务器关联”
  5. 如上所述,仅当使用主机名关联并且存在多个 ARR 实例时,才需要 External Cache。 因此,请确保选中“使用主机名”复选框
    “服务器相关性”选项卡的屏幕截图。已选中“使用主机名”检查框。
  6. 选择“使用外部缓存”复选框可启用 External Cache。 “文件共享路径”文本框是必填字段,用于指定 ARR 服务器将访问的位置以维护 ARR 服务器之间的主机名关联状态
    “外部缓存”对话框的屏幕截图。
  7. 在所有 ARR 服务器上重复上述步骤。
  8. 若要验证该功能是否正常工作,请将具有特定主机名的请求发送到 ARR 服务器之一。 记下此主机名关联到的应用程序服务器。 将相同的请求发送到剩余的 ARR 服务器。 无论哪个 ARR 服务器正在处理具有该主机名的请求,这些请求都应路由到同一应用程序服务器。
  9. 可能还需要验证正在写入数据的文件共享。

若要使用命令行启用 External Cache,请执行以下步骤:

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

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

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

    appcmd.exe set config  -section:webFarms /[name='myServerFarm'].applicationRequestRouting.affinity.useHostName:"True"  /commit:apphost
    
  4. 若要启用和配置 External Cache,请输入以下脚本(以下示例使用的值与上述 UI 步骤中使用的值相同)。 输入密码代替 ********:

    appcmd.exe set config  -section:system.webServer/externalCache/diskCache /[name='ARRCache'].path:"\\wonyoo-w2k8-3\IISShared" /[name='ARRCache'].userName:"redmond\wonyoo" /[name='ARRCache'].password:"********"  /commit:apphost
    

总结

现已成功启用且配置了适用于 IIS 的 Microsoft External Cache,可与应用程序请求路由中的主机名关联功能配合使用。 有关在 ARR 层实现高可用性的详细信息,请参阅: