应用程序请求路由版本 2 概述
作者:IIS 团队
介绍
此文档部分适用于用于 IIS 7 及更高版本的 Microsoft 应用程序请求路由版本 2。
适用于 IIS 7 的 Microsoft 应用程序请求路由 (ARR) 是基于代理的路由模块,可根据 HTTP 标头、服务器变量和负载平衡算法,向应用程序服务器转发 HTTP 请求。
ARR 版本 2 是一个增量版本,包含版本 1 中的所有功能,并添加了对基于磁盘的缓存的支持。 更具体地说,ARR 版本 2 可用于:
通过磁盘缓存增强 ARR 版本 1 方案。
在 CDN/ECN 环境中将 ARR 用作缓存节点。
- 使用 ARR 作为边缘/子缓存节点。
- 使用 ARR 作为父缓存节点。
注意
- 无法并行安装 ARR 版本 1 和 ARR 版本 2。
- 无法并行安装 ARR 版本 2 的早期版本(Beta1、Beta2 和 RC)和 ARR 版本 2 RTW。
- ARR 版本 2 RTW 支持从 ARR 版本 1 RTW 和 ARR 版本 2 RC 进行升级。 如果已安装任何其他版本的 ARR,请先将其卸载,然后再安装 ARR 版本 2。
- 支持的用于 IIS 管理器的最低分辨率为 1024x768。
功能
ARR 版本 2 包含以下主要功能:
- 基于磁盘的缓存 - 除了 ARR 版本 1 中的内核内存缓存外,版本 2 还添加了对基于磁盘的缓存的支持,包括对基于辅助网络的驱动器的支持。
- 缓存层次结构管理 - 定义和管理缓存节点之间的关系,包括对缓存阵列路由协议 (CARP) 的支持。
- CDN/ECN 环境中的缓存代理节点 - 由于 ARR 是支持磁盘缓存和 CARP 的基于代理的 HTTP 请求路由模块,因此 ARR 可充当 CDN/ECN 环境中的缓存代理。
- 缓存压缩对象 - 基于磁盘的缓存可存储压缩的对象,这样就无需实时为每个请求压缩对象。 此外,ARR gzip 可压缩对象,即使内容服务器不使用 gzip 内容编码进行响应。
- 在应用程序请求路由中配置具有查询字符串支持的缓存
- 使用 IIS 管理器浏览缓存的内容 - 在 IIS 管理器的一个合并图形视图中浏览多个驱动器中缓存的内容。
- 删除缓存的内容 - 通过匹配 URL 模式删除缓存的内容。
- 运行 Scavenger.exe 删除作为独立实用工具的辅助驱动器中缓存的内容。
- 重写缓存控制指令 - 手动重写响应标头中的缓存控制指令以更改缓存行为。
- 预热缓存节点 - 在有用户需求的缓存节点的内容被请求之前提前预热缓存节点。 此外,可选择性地将内容预先缓存到父缓存层。
- 智能字节范围支持 - ARR 将字节范围请求转换为可管理的段,以增加缓存命中率/错失率,且不影响响应时间。
- 智能实时请求支持 - ARR 旨在与实时平滑流式处理相结合,以支持实时内容请求,而无需重载实时流传送服务器。
- 缓存和响应同时发生 - 缓存大容量内容(如电影剪辑)可能需要一些时间。 ARR 版本 2 能够在缓存内容的同时即时响应。
- 支持性能计数器 - 监视和管理视图中显示的运行时统计信息可作为性能计数器进行访问。
支持
ARR 版本 2 是“发布到 Web”(RTW) 产品,并由 Microsoft 帮助和支持部门提供支持。 论坛将保持活跃状态。
获取模块
- 适用于 IIS 7 (x86) 的 Microsoft 应用程序请求路由版本 2 (
https://download.microsoft.com/download/4/D/F/4DFDA851-515F-474E-BA7A-5802B3C95101/ARRv2_setup_x86.EXE
)。 - 适用于 IIS 7 (x64) 的 Microsoft 应用程序请求路由版本 2 (
https://download.microsoft.com/download/3/4/1/3415F3F9-5698-44FE-A072-D4AF09728390/ARRv2_setup_x64.EXE
)。
使用模块
以下文章介绍如何安装和配置 ARR 版本 2。 强烈建议按照下面列出的顺序阅读这些文章,因为它们是逐步进阶的。
- 为 IIS 安装应用程序请求路由(ARR)版本 2。 - 在生产环境中部署时包括 IIS 配置建议。
- 配置和启用 ARR 的磁盘缓存。- 如何配置可在多个缓存节点之间共享的主缓存驱动器和辅助缓存驱动器。
- 在应用程序请求路由中配置具有查询字符串支持的缓存
- 如何为 ARR 定义缓存层次结构。 - 说明如何管理 ARR 中的缓存关系。
- 在 CDN/ECN 中将 ARR 配置为缓存节点 - 逐步介绍如何将 ARR 部署为边缘/子缓存节点以及父缓存节点。
- 浏览磁盘上的缓存内容。 - 使用 IIS 管理器查看多个主缓存驱动器上的缓存内容。
- 从 ARR 中删除缓存的内容。- 浏览时或通过匹配 URL 模式删除一个或多个缓存的内容。
- 运行 Scavenger.exe 删除作为独立实用工具的辅助驱动器中缓存的内容。
- 重写 HTTP 响应中的缓存控制指令。- 控制缓存的内容或缓存时长,而不考虑缓存控制指令。
- 使用预期内容预热 ARR 上的缓存节点。- 在需要之前主动缓存 ARR 上的内容。
- 在 ARR 中配置字节范围请求段大小。- 了解 ARR 如何处理字节范围请求。
- 在 ARR 中配置请求合并功能。了解 ARR 如何帮助提供实时流式处理媒体。
- 在 ARR 中使用压缩。 - ARR 压缩和缓存压缩的对象,即使内容服务器不支持压缩也如此。
- 使用性能计数器。 - 使用性能计数器收集实时运行时统计信息。
- 针对 ARR 的部署建议。 - 针对 ARR 部署的最佳做法和建议。
URL 重写模块中的更改
ARR 版本 2 包括 URL 重写模块 2.0 的更新版本,其中引入了自 URL 重写 2.0 Beta 版本发布以来的多项中断性变更。 下面列出了这些中断性变更:
如果分布式重写规则设置了服务器变量,需要将该服务器变量添加到 <allowedServerVariables> 集合。 这可以通过使用 IIS 管理器中的 URL 重写用户界面或修改 applicationHost.config 文件来完成,如下所示。 请注意,如果服务器变量是使用全局规则设置的,则不需要执行此操作。
<rewrite> <allowedServerVariables> <add name="MY_SERVER_VARIABLE" /> </allowedServerVariables> </rewrite>
HTTP_CONTENT_TYPE 服务器变量已替换为 RESPONSE_CONTENT_TYPE。 如果出站重写规则使用了一个要检查 HTTP_CONTENT_TYPE 的先决条件,则该规则将失效。 更改先决条件,改用 RESPONSE_CONTENT_TYPE。