【发布时间】:2020-03-13 20:45:00
【问题描述】:
我已使用自定义源(无 S3)设置 CloudFront。自定义来源正在提供带有 cachecontorl 标头的文件:
curl -I https://origin-site/assets/common.css?v=12345
HTTP/1.1 200 OK
Cache-Control: max-age=86400
我已将 CloudFront 配置为自定义 MinTTL、DefaultTTL 和 MaxTTL。
在 CloudFormation 中:
CacheBehaviors:
- TargetOriginId: !Sub 'xxx-${Environment}'
PathPattern: "assets/*"
ViewerProtocolPolicy: redirect-to-https
Compress: true
MinTTL: 0
DefaultTTL: 30672000
MaxTTL: 30672000
AllowedMethods:
- HEAD
- GET
- OPTIONS
CachedMethods:
- HEAD
- GET
- OPTIONS
ForwardedValues:
QueryString: true
Cookies:
Forward: none
现在我在控制台中看到了自定义设置和正确的值。我什至在它之后做了一个失效。
现在我通过 CDN 访问资产:
curl -I https://cdn-cloudfront-site/assets/common.css?v=12345
HTTP/1.1 200 Connection Established
Proxy-Agent: IWSS
Date: Mon, 18 Nov 2019 13:05:29 GMT
HTTP/1.1 200 OK
Content-Type: text/css
Content-Length: 104120
Connection: keep-alive
Cache-Control: max-age=86400
Last-Modified: Fri, 15 Nov 2019 10:15:38 GMT
Accept-Ranges: bytes
ETag: "0415ea09d9bd51:0"
Server: Microsoft-IIS/10.0
X-Content-Type-Options: nosniff
Access-Control-Allow-Origin: *
Date: Mon, 18 Nov 2019 13:05:30 GMT
Vary: Accept-Encoding
X-Cache: Miss from cloudfront
Via: 1.1 b912dc97777020eb19579888add26978.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA50-C1
X-Amz-Cf-Id: 46wPzKf7v7A2vTbWQMRVZf2V8KCPdCtZSCdY9P82MtDLKJXe3TxskQ==
先是失误,然后是命中,没关系。但我想要Cache-Control: max-age=86400 为Cache-Control: max-age=30672000 但这没有改变?我在这里错过了什么?
更新:我读到:
您可以通过许多有趣的方式使用这些选项!例如,如果 您没有在源上设置任何缓存控制标头,您可以使用 用于指定边缘站点的缓存持续时间的默认 TTL。要么, 您可以完全覆盖由 origin 设置的缓存控制标头 将所有三个值(最小值、最大值和默认值)设置为相同 价值。
但是那段时间我的起源没有被检查?
【问题讨论】:
标签: amazon-web-services caching amazon-cloudfront cdn cache-control