我的想法是使用cloudfront缓存EC2中的一个整个站点。但是我有很多麻烦要做。如果我将cloudfront选项Forward Headers设置为none,则会缓存来自apache的默认index.html(可能是因为CF正在缓存LB URL)。如果我将转发标头设置为白名单,并在白名单标头机站点显示正常,但我可以在响应标头中看到:
X-Amz-Cf-Id:Ij8TsEU2hPehG53Op6LX1zFDmZfYWBOVFn8el8ApicCQYdYEi69HsQ==
X-Cache:Miss from cloudfront
这是当前的场景:
- 路由53,别名指向CloudFront(用于我的裸域和www)
- CloudFront的Origin域名=负载平衡器DNS名称,cname也配置为裸域和www
- 带EC2的负载平衡器
- EC2有几个站点(我只想在其中一个站点中使用CF)
有人能帮我如何正确配置吗?
更新1只是一个快速的观察,该网站是在WordPress。但是,我认为没有必要使用任何cdn模块(如W3 Total Cache),因为我希望缓存整个网站。
查看CloudFront发行版的Behavior部分。"对象缓存"有一个设置。如果设置为"使用原始缓存标头",则需要为每个请求返回一个缓存控制标头。如果应用程序没有设置"缓存控制"标头,则将"对象缓存"设置为"自定义",并在"最小TTL"字段中为对象设置适当的TTL。
如果您没有设置自己的缓存控制标头,并且将此设置保留为默认值"使用原始缓存标头",那么您基本上将无法实现CDN的目的,因为通过CDN发出的每个请求都将立即有效过期,因此通过CDN的每个请求仍将从原始缓存中提取。