使用应用程序请求路由手动覆盖缓存控制指令

作者:Won Yoo

此文档部分适用于用于 IIS 7 及更高版本的 Microsoft 应用程序请求路由版本 2

目标

成功编写规则来管理缓存控制指令,以控制缓存能力和缓存持续时间的行为。

在某些情况下,ARR 管理员可能希望在响应头中缺少缓存控制指令时定义缓存控制指令,甚至覆盖响应中的缓存控制指令。 ARR 提供了定义其缓存控制指令的功能,以便管理员可以进一步管理缓存内容的行为。

先决条件

本文假定你已熟悉 ARR 的整体功能,并了解如何使用磁盘缓存部署和配置 ARR。 如果尚未这样做,强烈建议在继续操作之前查看以下演练:

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

  • 适用于 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。

步骤 1 - 配置缓存控制规则。

本演练假设 ARR 已配置磁盘缓存。 在继续操作之前,请仔细检查先决条件。

  1. 启动 IIS 管理器。

  2. 缓存控制规则在服务器级别定义。 选择并展开服务器的根目录。

    Screenshot shows the I I S Manager navigation view with a server selected.

  3. 双击“应用程序请求路由缓存”

  4. 在“操作”窗格中,单击“缓存控制规则”

    Screenshot shows the Actions pane, where you can select Cache Control Rules.

  5. 在“操作”窗格中,单击“添加…”

  6. 此时会启动一个对话框,可帮助你编写缓存控制规则。 与服务器场级别的 ARR 中的路由规则类似,ARR 依赖于 URL 重写来编写缓存控制规则。 ARR 中的此 UI 使其与磁盘缓存功能更加相关,而无需强制用户使用 URL 重写 UI 来编写缓存控制规则。

    在本演练中,你将编写一个规则,始终将 .jpg 图像缓存 30 分钟,而无论响应头中的缓存控制指令如何规定。 为此,请输入以下值:

    应用规则:始终
    缓存:已选中
    缓存持续时间(分钟):30
    主机名:空白
    URL:*.jpg

    注意

    主机名和 URL 都是可选字段。

    Screenshot shows the Add Cache Control Rule dialog box with values added.

步骤 2 - 验证功能。

在步骤 1 中编写的缓存控制规则会始终将 .jpg 文件缓存 30 分钟,而无论响应头中的缓存控制指令如何规定。

  1. 使用在步骤 1 中编写的规则向 ARR 服务器发送 .jpg 请求。

  2. 打开命令提示符并导航到缓存的位置。

  3. 找到名称为 full 的文件。 (在下面的示例中,该文件位于 c:\cache\localhost\pix\

    Screenshot shows a command prompt window with several files displayed.

  4. 打开 full 文件以查看标头

    Screenshot shows a command prompt window that displays the header.

    验证 max-age 是否设置为 30 分钟(或 1800 秒)。

    注意

    ARR 允许多个缓存控制规则。 它们是从上到下进行处理的,可以使用“操作”窗格中的向上和向下箭头来管理顺序。 本演练介绍了缓存控制规则的简单案例,但相同的概念可以扩展到不缓存某些内容,或仅基于 URL 模式或主机名缓存内容。

总结

现在,你已经成功编写缓存控制规则,来定义内容是否可缓存,如果可以,应缓存多长时间。

有关其他 ARR 版本 2 演练,请参阅这篇文章中的文档。