如何设置不缓存错误状态的AWS CloudFront缓存策略
解决CloudFront缓存错误状态的方案
核心思路
针对首次上传后可能出现的错误响应(比如404、5xx),让CloudFront仅缓存成功的2xx类响应,完全跳过错误状态的缓存。
具体实现步骤
- 调整缓存策略的错误缓存规则:在CloudFront缓存策略的「错误页面缓存设置」中,指定不缓存特定错误状态码。比如对404、500、502等常见错误状态码设置TTL为0,或者直接勾选「不缓存这些错误响应」选项。
- 自定义缓存策略(默认策略不满足时):创建自定义缓存策略,在「缓存键和源请求」配置里添加规则:仅当响应状态码属于2xx范围时,应用你设置的长TTL;对于所有错误状态码,强制禁用缓存(TTL设为0,同时关闭缓存开关)。
- 源站响应头辅助控制(可选):在图片存储的源站(比如S3),当返回错误响应时,添加
Cache-Control: no-cache, no-store, must-revalidate响应头,CloudFront会自动遵循该头信息,不缓存对应的错误内容。
效果说明
由于你的图片使用唯一UUID命名,只要源站返回200类成功响应,CloudFront就会按长TTL正常缓存;首次请求的错误响应不会被缓存,后续请求会直接回源获取最新状态,确保能拿到成功的图片资源。
内容的提问来源于stack exchange,提问作者Jack O'Connor
相关产品推荐
相关产品推荐

