边缘加速
  • 站点加速
    • 概述
    • Quickly Import and Export Site Configuration
    • 访问控制
      • Token 鉴权
    • 智能加速
    • 文件优化
      • 智能压缩
    • 网络优化
      • HTTP/2
      • HTTP/3(QUIC)
        • 概述
        • 启用 HTTP/3
        • QUIC SDK
          • SDK 概览
          • SDK 下载和集成指引
          • 代码示例
            • Android
            • iOS
          • API 文档
            • Android
            • iOS
      • IPv6 访问
      • 最大上传大小
      • WebSocket
      • 携带客户端 IP 头部回源
      • 携带客户端 IP 地理位置头部回源
      • 开启 gRPC
    • URL 重写
      • 访问 URL 重定向
      • 回源 URL 重写
    • 修改头部
      • 修改 HTTP 节点响应头
      • 修改 HTTP 回源请求头
    • 自定义错误页面
    • 请求与响应行为
      • 请求处理顺序
      • EdgeOne 默认 HTTP 回源请求头
      • EdgeOne 默认 HTTP 响应头
    • Media Services
      • Audio and Video Pre-pulling
      • Just-in-Time Image Processing
      • Just-in-Time Media Processing
      • VOD Media Origin
  • 四层代理
    • 概述
    • 新建四层代理实例
    • 修改四层代理实例配置
    • 停用/删除四层代理实例
    • 批量配置转发规则
    • 获取客户端真实IP
      • 通过 TOA 获取 TCP 协议客户端真实 IP
      • 通过 Proxy Protocol V1/V2 协议获取客户端真实 IP
        • 概述
        • 方式一:通过 Nginx 获取客户端真实 IP
        • 方式二:在业务服务器解析客户端真实 IP
        • Proxy Protocol V1/V2 获取的客户端真实 IP 格式
      • 通过 SPP 协议传递客户端真实 IP
  • 边缘 DNS
    • 托管域名 DNS 解析
      • 修改 DNS 服务器
      • 配置域名 DNS 解析记录
      • DNS 高级配置
    • 接入加速域名
      • 添加加速域名
      • 站点/域名归属权验证
      • 修改 CNAME 解析
    • 别称域名
      • 概述
      • 配置指南
      • 通过别称域名批量接入 SaaS 建站域名
      • 别称域名实现业务的容灾
    • 流量调度
      • 流量调度管理
    • 源站配置
      • 回源配置
        • 配置回源 HTTPS
        • Host Header 重写
        • 回源请求参数设置
        • 回源跟随重定向
        • HTTP/2 回源
        • 分片回源
      • 负载均衡
        • 概述
        • 快速创建负载均衡实例
        • 健康检查策略介绍
        • 查看源站健康状态
        • 相关参考
          • 负载均衡相关概念
          • 请求重试策略介绍
      • 源站组操作指引
      • 相关参考
        • 旧版源站组兼容相关问题
      • 获取 EdgeOne 回源节点 IP
  • 边缘缓存
    • 概述
    • EdgeOne 缓存规则介绍
      • EdgeOne 内容缓存规则
      • 缓存键(Cache Key)介绍
      • Vary 特性
    • 缓存配置
      • 自定义 Cache Key
      • 节点缓存 TTL
      • 状态码缓存 TTL
      • 浏览器缓存 TTL
      • 离线缓存
      • 缓存预刷新
    • 清除和预热缓存
      • 清除缓存
      • 预热缓存
    • 如何提高 EdgeOne 的缓存命中率
  • 规则引擎
    • 概述
    • 规则引擎支持的匹配类型与操作
    • 规则管理
    • 变量

EdgeOne 内容缓存规则

概述

当客户端向 EdgeOne 边缘节点发起 HTTP 请求后,节点将判断当前文件是否命中缓存,如未命中,则回源向源站发起请求获取最新文件,在源站正确响应文件后,EdgeOne 将根据用户设置的缓存规则结合平台默认缓存策略,对文件进行缓存。您可以通过查看 如何配置缓存规则 来了解如何自定义设置您的文件缓存规则。缓存规则配置后,将按照以下顺序匹配生效:



注意:
缓存规则仅在源站响应状态码为200、206的情况下生效,如果源站响应为404状态码,则节点将缓存该状态码10s,其他状态码均不缓存。
1. 缓存规则将优先匹配规则引擎内缓存规则,按照从上往下的优先级顺序进行匹配,最上方规则优先级最高,如该文件在规则引擎内匹配成功,则按照该缓存规则进行缓存。
2. 规则引擎内未匹配到相应的规则时,则按照站点加速内的全局节点缓存策略进行缓存,全局缓存策略默认为 EdgeOne 的默认缓存策略,您可以根据需求自定义修改。

缓存规则

EdgeOne 支持配置三种缓存策略配置,分别为:
默认缓存策略:遵循 EdgeOne 默认缓存策略,根据 HTTP 响应头内的 Cache-Control 及其他缓存头部来决定文件在节点内的缓存时间。
不缓存:通过规则引擎内指定文件不缓存,或全局文件不缓存,适用于动态文件或更新频繁的文件内容。
自定义缓存时间:按照自定义缓存时间缓存文件。
注意:
文件缓存在 EdgeOne 节点后,平台具有文件冷热淘汰机制,如果当前缓存文件长时间未有请求,则可能在未达到最大缓存时间时提前从节点缓存中删除。

默认缓存策略

EdgeOne 的默认缓存策略如下:



在默认缓存策略下,节点将根据源站是否携带缓存头部来控制该文件在节点的缓存动作及缓存时间,缓存规则如下:
1. 当 HTTP 响应头中,包含了以下任意的不缓存头部时,文件不缓存:
Cache-Control:private
Cache-Control:no-store
Cache-Control:no-cache
2. 当 HTTP 响应头中,包含以下任意一个缓存头部时,文件将按照缓存头部中设定的缓存时间进行缓存:
Cache-Control:s-maxage
Cache-Control:max-age
Expires
如果同时存在以上多个响应头,则缓存时间按照 s-maxage > max-age > Expires 的优先级顺序判断,按照优先级高的头部所设定时间缓存。
3. 当 HTTP 响应头不包含以上任意的缓存头部时,则会根据在规则中所配置的缓存行为执行:
默认缓存策略:
如果 HTTP 响应头内带有 Last-Modified,则缓存时间 = ( 当前时间 - Last-Modified ) * 0.1,计算结果在10秒 ~ 3600秒及之间的,取计算结果时间;小于10秒的,按照10秒处理;大于3600秒的,按照3600秒处理。
如果 HTTP 响应头内无 Last-Modified,则依据文件后缀,按照平台默认缓存规则进行缓存,不同文件后缀的缓存时间如下:
表1:默认文件缓存时间
文件类型
后缀
缓存时间
动态文件
php、aspx、asp、jsp、do、dwr、cgi、fcgi、action、ashx、axd、json
不缓存
静态文件
图片
jpg、png、jpeg、webp、gif、heif、heic、kpg、ico
缓存2小时
音视频
mp4、mp3、m3u8、ts、m4a、avi、m4s、ogg
网页
html、js、css
压缩包
zip、7z、tar、br、gz、rar、bz2
文档
doc、docx、xls、xlsx、pdf、ppt、pptx
应用程序
apk、exe、bin
其它
vsv、iso、jar、swf、chunk、atlas
其他文件
N/A
不缓存
不缓存:HTTP 响应头中不包含以上任意缓存头部的情况下,不缓存
自定义时间:如果 HTTP 响应头中不包含以上任意缓存头部,则按照平台自定义配置的缓存时间缓存。

不缓存策略

如果在 EdgeOne 规则引擎或全局站点设置内,配置缓存规则为不缓存,则该文件无论源站是否带有 Cache-Control 及其他缓存头部,均不缓存文件。

自定义缓存时间




自定义缓存时间可以帮助您按照自定义配置的时间来缓存文件,支持开启/关闭强制缓存:
开启强制缓存:默认开启,无论源站是否携带有 Cache-Control 及其他缓存头部,均无视对应头部配置,按照 EdgeOne 平台内配置的自定义缓存时间缓存该文件。
关闭强制缓存:关闭强制缓存后,如果源站的 HTTP 响应头中携带有以下任意的不缓存响应头时,文件将不会缓存:
Cache-Control:private
Cache-Control:no-store
Cache-Control:no-cache
如果不包含以上的任意 HTTP 响应头,则文件将按照 EdgeOne 平台内配置的自定义缓存时间缓存该文件。

了解更多