使用缓存规则控制 Azure 内容分发网络缓存行为

重要

Microsoft Azure CDN Standard(经典版)将于 2027 年 9 月 30 日停用。 为了避免任何服务中断,请务必在 2027 年 9 月 30 日之前将 Azure CDN 标准版从 Microsoft(经典)配置文件迁移到 Azure Front Door 标准层或高级层。 有关详细信息,请参阅 Microsoft(经典)的 Azure CDN 标准(停用)

Edgio 的 Azure CDN 已于 2025 年 1 月 15 日停用。 有关详细信息,请参阅 Edgio 停用的 Azure CDN 常见问题解答

本文介绍如何使用内容分发网络缓存规则来设置或修改默认缓存过期行为。 这些缓存规则可以是全局规则,也可以具有自定义条件,例如 URL 路径和文件扩展名。

Azure 内容分发网络提供了两种方法来控制文件的缓存方式:

缓存规则: Azure 内容分发网络提供两种类型的缓存规则:全局和自定义。

  • 全局缓存规则 - 可以针对配置文件中的每个终结点设置一个全局缓存规则,该规则影响对该终结点发出的所有请求。 全局缓存规则会替代所有 HTTP 缓存指令标头(如果已设置)。

  • 自定义缓存规则 - 可以针对配置文件中的每个终结点设置一个或多个自定义缓存规则。 自定义缓存规则将匹配特定的路径和文件扩展名,按顺序进行处理,并替代全局缓存规则(如果已设置)。

查询字符串缓存: 可以调整 Azure 内容分发网络如何使用查询字符串处理请求的缓存。 有关信息,请参阅 使用查询字符串控制 Azure 内容分发网络缓存行为。 如果文件不可缓存,则根据缓存规则和内容分发网络默认行为,查询字符串缓存设置不起作用。

有关默认缓存行为和缓存指令标头的信息,请参阅 缓存的工作原理

访问 Azure 内容分发网络缓存规则

  1. 打开 Azure 门户,依次选择内容分发网络配置文件、终结点。

  2. 在“设置”下的左窗格中,选择“ 缓存规则”。

    “缓存规则”页随即出现

    内容分发网络缓存规则页的屏幕截图。

缓存行为设置

对于全局和自定义缓存规则,可指定以下“缓存行为”设置:

  • 绕过缓存: 不要缓存和忽略源提供的缓存指令标头。

  • 覆盖: 忽略源提供的缓存时间,改为使用提供的缓存时间。 此设置不会替代 cache-control: no-cache。

注释

对于“Microsoft 提供的 Azure CDN”配置文件,缓存过期替代仅适用于状态代码 200 和 206。

  • 设置(如果缺少): 遵循源提供的缓存指令标头(如果存在);否则,请使用提供的缓存持续时间。

全局缓存规则

自定义缓存规则

缓存过期持续时间

对于全局和自定义缓存规则,可以使用天、小时、分钟和秒作为单位指定缓存过期持续时间:

  • 对于“替代”和“缺少时设置”这两个“缓存行为”设置,有效的缓存持续时间范围为 0 秒到 366 天。 如果值为 0 秒,则内容分发网络会缓存内容,但必须在源服务器上重新验证每个请求。

  • 对于 “绕过缓存 ”设置,缓存持续时间会自动设置为 0 秒,这不是可修改的值。

自定义缓存规则的匹配条件

对于自定义缓存规则,可以使用两个匹配条件:

  • 路径: 此条件与 URL 的路径匹配,不包括域名,并支持通配符 {。 例如 /myfile.html/my/folder/**和 /my/images/.jpg。 最大长度为 260 个字符。

  • 外延: 此条件与所请求文件的文件扩展名匹配。 可以提供要匹配的文件扩展名的逗号分隔列表。 例如, .jpg.mp3.png。 扩展名数目上限为 50 个,每个扩展名的字符数上限为 16 个。

全局和自定义规则的处理顺序

全局和自定义缓存规则的处理顺序如下:

  • 全局缓存规则优先于默认的内容分发网络缓存行为(HTTP 缓存指令标头设置)。

  • 自定义缓存规则(如果适用)优先于全局缓存规则。 自定义缓存规则按从上到下的顺序进行处理。 也就是说,如果某个请求与两个条件匹配,则位于列表底部的规则优先于列表顶部的规则。 因此,应将更具体的规则放在列表的较低位置。

示例

  • 全局缓存规则:

    • 缓存行为: 替代
    • 缓存过期持续时间:1 天
  • 自定义缓存规则 #1:

    • 匹配条件: 路径
    • 匹配值: /home/*
    • 缓存行为: 替代
    • 缓存过期持续时间:2 天
  • 自定义缓存规则 #2:

    • 匹配条件: 扩展
    • 匹配值: .html
    • 缓存行为:如果缺少则设置
    • 缓存过期持续时间:3 天

设置这些规则时,对终结点 hostname.azureedge.net/home/index.html> 的请求<将触发自定义缓存规则 #2,该规则设置为:如果没有设置,则保存 3 天。 因此,如果 index.html 文件具有 Cache-ControlExpires HTTP 标头,则会得到遵守;否则,如果未设置这些标头,文件将缓存三天。

注释

在发生规则更改之前缓存的文件会保留其源缓存持续时间设置。 若要重置缓存持续时间,必须 清除该文件

Azure 内容分发网络配置更改可能需要一段时间,才能在整个网络中传播:

另请参阅