阿里云ESA默认缓存策略

Edge Security Acceleration 缓存机制详解

1概述

阿里云边缘安全加速(ESA, Edge Security Acceleration)通过将源站资源缓存到距离客户端最近的边缘节点,有效避免通过较长的链路回源,从而显著提高资源访问效率。ESA的缓存系统采用多重判断机制,确保缓存策略的灵活性和准确性。

缓存判断机制

2默认缓存时间配置

ESA提供四种缓存模式,用户可根据业务需求灵活选择:

缓存模式 说明
优先遵循源站,否则默认 源站返回Cache-Control/Expires/Last-Modified/ETag时遵循源站配置;否则使用ESA默认策略
优先遵循源站,否则不缓存 源站无Cache-Control响应头时,资源不缓存
不缓存 所有资源均不缓存,所有请求直接回源
忽略源站,自定义TTL 强制使用ESA设定的过期时间,完全忽略源站缓存配置

源站无Cache-Control时的默认策略

当选择"优先遵循源站,否则默认"模式且源站未返回Cache-Control时,ESA按以下优先级判断缓存策略:

3默认缓存文件类型

ESA默认对以下文件扩展名的资源启用缓存:

文件类型 扩展名
文档 .DOC, .DOCX, .PPT, .PPTX, .PDF, .CSV
图像 .BMP, .GIF, .ICO, .JPEG, .JPG, .PNG, .SVG, .SVGZ, .TIF, .TIFF, .WEBP
音频 .MP3, .FLAC, .MID, .MIDI
视频 .AVI, .MP4, .MKV, .WEBM
压缩 .7Z, .GZ, .RAR, .TAR, .ZIP, .ZST
执行文件 .APK, .BIN, .CLASS, .DMG, .EXE, .JAR, .MSI, .ISO
字体 .EOT, .OTF, .TTF, .WOFF, .WOFF2
脚本代码 .CSS, .EJS, .JS
设计矢量 .EPS, .PICT, .PS, .SWF

4状态码缓存策略

正常状态码缓存

对于以下正常状态码(200/203/206/300/301/308/410),按上述四种缓存模式处理。

异常状态码缓存

状态码 缓存规则
204/305/404/405/414/424/429/500/501/502/503/504 无set-cookie时:优先ESA配置 > 源站Pragma/Cache-Control/Expires > 默认1秒
302/307/403 同上,但源站无配置时不缓存
其他(如400) 仅ESA配置有效,其他情况不缓存

Range回源特殊处理:非206响应会删除已缓存的分片数据。

5缓存响应头信息

ESA在响应中提供以下与缓存相关的头部信息:

响应头 说明
Ali-Swift-Global-Savetime 资源首次进入ESA边缘节点时间(Unix时间戳)
Date 源站响应时间(GMT格式)
X-Site-Cache-Status 缓存状态:HIT/MISS/NONE/EXPIRED/STALE/BYPASS/REVALIDATED/DYNAMIC
X-Swift-Cachetime 缓存过期时间(秒)
X-Swift-SaveTime 资源进入当前L1节点时间(GMT格式)

6其他配置细节

文件不缓存条件

缓存回源校验策略

ESA支持以下缓存控制指令:

7总结

阿里云ESA的默认缓存策略提供了灵活且全面的缓存管理能力。通过四层缓存模式、丰富的默认文件类型支持、差异化的状态码处理以及详细的缓存响应头信息,ESA能够满足不同业务场景下的缓存需求。用户可以根据自身业务特点,选择合适的缓存模式,并结合源站缓存控制头部,实现最优的缓存效果。