忽略参数

更新时间:
复制 MD 格式

开启忽略参数后,CDN 节点会去除请求 URL 参数(? 之后的部分),使不同参数的请求命中同一缓存,从而提高缓存命中率。本文介绍忽略参数的配置方法、功能对比以及使用建议。

功能对比与选择

  • 自定义Cache Key与忽略参数存在冲突:同时配置忽略参数和自定义 Cache Key 的情况下,忽略参数功能将会失效。

  • 自定义Cache Key可替代忽略参数的缓存键配置,且功能更全面,推荐优先使用。配置对比:

    场景

    忽略参数配置

    自定义Cache Key配置

    在缓存键中忽略所有请求参数

    忽略参数设置为是,保留指定参数留空

    添加一条请求参数处理策略:

    • 操作方式:保留

    • 参数名:设为任意不存在的参数名,例如 example-argument

    在缓存键中仅保留请求参数key1

    忽略参数设置为是,保留指定参数设置为key1

    添加一条请求参数处理策略:

    • 操作方式:保留

    • 参数名:key1

    在缓存键中仅删除请求参数key1

    删除指定参数设置为key1

    添加一条请求参数处理策略:

    • 操作方式:删除

    • 参数名:key1

  • 重写回源参数可替代忽略参数的回源参数重写,且功能更全面,推荐优先使用。

功能介绍

忽略参数

作用

适用场景

去除请求 URL 参数(? 之后的部分),使携带不同参数的请求命中同一缓存文件,提高缓存命中率、减少回源次数。

当 URL 参数与资源内容无关(如用户 UID、渠道来源、推荐码等),建议开启忽略参数。例如,以下两个请求访问同一资源但携带不同 UID:

A 用户:http://example.com/1.jpg?uid=123***

B 用户:http://example.com/1.jpg?uid=654***

未开启忽略参数时,CDN 节点会将 A、B 用户的 URL 视为不同资源,无法命中同一缓存,每次都需回源。开启忽略参数后,CDN 节点会去除 URL 参数,统一使用 http://example.com/1.jpg 匹配缓存。

说明

配置URL鉴权的优先级高于忽略参数。鉴权方式A的鉴权信息包含URL参数部分,CDN会先完成鉴权判断,通过后再缓存副本。

保留回源参数

作用

适用场景

回源时保留原始 URL 全部参数,确保源站能接收到用户的关键信息。

开启忽略参数后,CDN 节点默认使用去除参数后的 URL 回源。以上述示例为例,A、B 用户的回源请求都使用 http://example.com/1.jpg,UID 等关键信息会丢失。开启保留回源参数后,CDN 节点将使用原始 URL 回源,确保 UID 等参数传递给源站。

操作步骤

  1. 登录CDN控制台

  2. 在左侧导航栏,单击域名管理

  3. 在域名列表单击目标域名,在左侧导航栏,单击性能优化,进入性能优化配置页面。

  4. 单击忽略参数区域的修改配置,根据实际需求选择模式并完成配置。

  5. 配置完成后,单击确定保存。

重要
  • 切换模式后,原有配置将被清除。

  • 修改忽略参数配置后,边缘节点上已缓存的文件不会自动更新。必须通过控制台执行URL 刷新目录刷新,才能使新配置生效并清除旧缓存。否则,用户可能仍会访问到使用旧缓存策略缓存的内容,导致访问异常。

模式:保留指定参数

参数

说明

示例

忽略参数

  • :开启忽略参数,去除URL?之后的参数。

    说明

    仅开启忽略参数而未设置保留指定参数时,将去除?之后的所有参数。

  • :关闭忽略参数,保留所有URL参数。

假设原始URLhttp://example.com/1.jpg?key1=1&key2=2&key3=3,各配置的处理结果如下:

  • 示例一,忽略所有参数,不保留回源参数

    • 配置:忽略参数=保留指定参数留空,保留回源参数=

    • 缓存key:http://example.com/1.jpg

    • 回源URL:http://example.com/1.jpg

  • 示例二,保留指定参数,不保留回源参数

    • 配置:忽略参数=保留指定参数=key1保留回源参数=

    • 缓存key:http://example.com/1.jpg?key1=1

    • 回源URL:http://example.com/1.jpg?key1=1

  • 示例三,忽略所有参数,保留回源参数

    • 配置:忽略参数=保留指定参数留空,保留回源参数=

    • 缓存key:http://example.com/1.jpg

    • 回源URL:http://example.com/1.jpg?key1=1&key2=2&key3=3

  • 示例四,保留指定参数,保留回源参数

    • 配置:忽略参数=保留指定参数=key1保留回源参数=

    • 缓存key:http://example.com/1.jpg?key1=1

    • 回源URL:http://example.com/1.jpg?key1=1&key2=2&key3=3

保留指定参数

配置需要保留的参数名,最多10个,多个参数用英文逗号(,)分隔。

保留回源参数

  • 是:回源时保留原始URL中的所有参数。

  • 否:回源时仅携带与缓存hashkey一致的参数(即保留指定的参数)。

规则条件

规则条件能够对用户请求中携带的各种参数信息进行识别,以此来决定某个配置是否对该请求生效。

重要

引用规则条件时,按所关联规则条件的优先级匹配,而非按功能自身的配置顺序匹配。

  • 不使用:不使用规则条件。

  • 若需新增或编辑规则条件,请在规则引擎中进行管理。

模式:删除指定参数

参数

说明

示例

删除指定参数

配置需要删除的参数名,最多10个,多个参数用空格分隔。

假设原始URLhttp://example.com/1.jpg?key1=1&key2=2&key3=3,各配置的处理结果如下:

  • 示例一,删除指定参数,不保留回源参数

    • 配置:删除指定参数=key1保留回源参数=

    • 缓存key:http://example.com/1.jpg?key2=2&key3=3

    • 回源URL:http://example.com/1.jpg?key2=2&key3=3

  • 示例二,删除指定参数,保留回源参数

    • 配置:删除指定参数=key1保留回源参数=

    • 缓存key:http://example.com/1.jpg?key2=2&key3=3

    • 回源URL:http://example.com/1.jpg?key1=1&key2=2&key3=3

保留回源参数

  • 是:回源时保留原始URL中的所有参数。

  • 否:回源时仅携带与缓存hashkey一致的参数(即删除指定参数后的结果)。

规则条件

规则条件能够对用户请求中携带的各种参数信息进行识别,以此来决定某个配置是否对该请求生效。

重要

引用规则条件时,按所关联规则条件的优先级匹配,而非按功能自身的配置顺序匹配。

  • 不使用:不使用规则条件。

  • 若需新增或编辑规则条件,请在规则引擎中进行管理。

使用场景示例

利用忽略参数应对通过 URL 参数绕过缓存的请求

当攻击者或爬虫通过添加随机无意义参数(如 ?timestamp=xxx?random=xxx)请求同一资源时,CDN 会将每个带不同参数的请求视为独立资源,导致缓存命中率降低和回源流量激增。

此时应开启忽略参数功能(或配置忽略所有参数),使携带不同随机参数的请求命中同一缓存,从而有效降低回源压力。例如,配置忽略参数后,以下请求将命中同一缓存:

  • http://example.com/page.html?t=123456

  • http://example.com/page.html?t=789012

  • http://example.com/page.html?random=abc

上述请求在开启忽略参数后,统一使用 http://example.com/page.html 匹配缓存,有效防御通过 URL 参数绕过缓存的攻击行为。