IBM Cloud Docs
在缓存中使用页面规则

在缓存中使用页面规则

页面规则使您能够根据页面的 URL 来执行各种操作,例如,创建重定向、微调高速缓存行为,或者启用和禁用服务。

页面规则对符合以下格式的 URL 模式生效:

<scheme>://<hostname><:port>/<path>

例如

https://www.example.com:80/image.png

schemeport 部分是可选的。 如果省略 scheme 部分,那么格式接受 http://https:// 协议。 如果未指定 port,那么规则与所有端口匹配。 您可以通过在规则模式中使用 * 符号来执行基本通配符匹配,从而使其与一系列相似模式匹配。

页面规则注意事项

  • 在任何请求中,只有一条页面规则生效。
  • 页面规则按从上到下的顺序获得优先权。 URL 与规则匹配后,将仅应用该规则。 换言之,如果已在请求上触发页面规则,那么与 URL 模式匹配的任何后续规则都不会生效。
  • 通常,建议从最特定规则到最不特定规则进行排序。
  • 页面规则可以被禁用,在这种情况下,它们不会执行任何操作。 但是,您仍可以在列表中查看规则并对其进行编辑。 将“已启用”切换按钮设置为“关闭”,创建的页面规则最初将被禁用。

转发(URL 重定向)

使用 HTTP 301 或 302 重定向将一个 URL 重定向到另一个 URL。 可以使用 $X 语法引用 URL 中通配符匹配的任何部分的内容。 X 指示模式中的 glob 的索引:$1 将替换为第一个通配符匹配项,$2 替换为第二个通配符匹配项,依此类推。

例如,假设您设置了以下规则:

  • URL 匹配 = *.example.com/*
  • 已启用 = 开启
  • 设置 = 转发 URL
  • 设置为 = 301 永久重定向到 http://example.com/$2/

在这里,向 www.example.com/stuff/things 提出的请求会被重定向到 http://example.com/stuff/things

请注意,不要创建域指向其自身作为目标的重定向。 这种错误会导致无限重定向错误,受影响的 URL 无法解析。

重定向到 HTTPS

如果要重定向访客使用 HTTPS,请将规则行为设置为“始终使用 HTTPS”。

设置定制高速缓存

使用任何标准缓存级别,为符合页面规则模式的任何 URL 设置缓存行为。 将缓存级别设置为“缓存”,所有内容都会被缓存,即使不是默认的静态文件类型。 将高速缓存级别设置为绕过可阻止在该 URL 上进行高速缓存。

使用页面规则指定高速缓存级别时,可以设置 边缘高速缓存 TTL,它控制 CIS 在高速缓存中保留文件的时间长度。

浏览器缓存 TTL 控制客户端浏览器缓存资源的有效时间。 如果浏览器再次请求资源,而 TTL 尚未过期,浏览器会收到一个 HTTP 304 (Not Modified) 响应。 可以设置范围为 30 分钟到 1 年的 TTL。

并非所有缺省高速缓存行为都严格符合 RFC。 通过页面规则设置起源缓存控制使用的是一套较新的缓存规则,旨在更紧密地遵循 RFC,主要是关于重新验证。 例如,max-age=0 的缺省行为是完全不高速缓存,而设置源高速缓存控制则会高速缓存,但会始终重新验证。

以下示例设置页面规则来高速缓存在 /images 文件夹中找到的所有内容。 缓存资源在用户浏览器中 30 分钟后过期,在IBM CIS数据中心中一天后过期。

  • URL 匹配 = *.example.com/images/*
  • 已启用 = 开启
  • 规则行为设置:
规则行为设置缓存 /images 中的所有内容
设置 设置为
高速缓存级别 全部缓存
浏览器高速缓存 TTL 30 分钟
边缘高速缓存 TTL 1 天

提供旧内容提供高速缓存中的页面,即使服务器停止运行也是如此。 访问者将看到站点的有限版本,以及处于脱机浏览方式的消息。

此功能会返回 HTTP 状态 503。 当服务器再次联机时,CIS 会无缝地使访问者进入正常浏览。

如果请求的页面不在高速缓存中,那么访问者会看到错误页面,通知他们请求的页面处于脱机状态。 如果启用高速缓存所有内容页面规则并且到期时间设置为低于高速缓存频率,那么会按照相应的时间间隔清除提供旧内容