Den*_*boy 1 caching amazon-web-services amazon-cloudfront
我有一个具有以下配置的 CDN (CloudFront) 发行版。(我使用签名cookie,但我不认为它是相关的):
DefaultCacheBehavior:
# Target the origin
TargetOriginId: !Sub 'S3-${ProjectName}-${Environment}'
ViewerProtocolPolicy: redirect-to-https
# Check always the origin (in this case S3) for the item so always the newest item is served.
MinTTL: 0
DefaultTTL: 0
MaxTTL: 0
AllowedMethods:
- HEAD
- GET
- OPTIONS
CachedMethods:
- HEAD
- GET
- OPTIONS
ForwardedValues:
QueryString: true
Cookies:
Forward: all
# Specifies the AWS account(s) that you want to allow to create signed URLs or signed cookies for private content.
TrustedSigners:
- !Ref AccountID
Run Code Online (Sandbox Code Playgroud)
现在我有一些带有元数据的对象(对象 A): Cache-Control: no-cache
我还有一些其他带有元数据的对象(对象 B):Cache-Control: max-age=604800
现在我访问对象A:
first access: X-Cache: Miss from cloudfront
second access: X-Cache: RefreshHit from cloudfront
Run Code Online (Sandbox Code Playgroud)
现在我访问对象 B:
first access: X-Cache: Miss from cloudfront
second access: X-Cache: RefreshHit from cloudfront
Run Code Online (Sandbox Code Playgroud)
我怀疑对象 B 显示:来自 CloudFront 的命中?
我究竟做错了什么?
Jam*_*ean 10
AWS 有一个很好的文档:
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html
来自cloudfront的RefreshHit:这意味着CloudFront仍在缓存,但它正在对origin进行条件GET以了解对象是否已被修改,如果收到304未修改,则从缓存中提供服务,否则origin将返回一个新对象(如果对象已被修改)。
如果您查看上面链接中提到的表,您就会明白为什么您会看到对象 B 的 CloudFront 的 RefreshHit。缓存控制和 CloudFront TTL 具有相关性。
| 归档时间: |
|
| 查看次数: |
10224 次 |
| 最近记录: |