使用Load Balancer和Route 53时出现CloudFront问题

时间:2014-10-26 01:55:41

标签: amazon-cloudfront amazon-elb

我的想法是使用cloudfront缓存EC2中的一个整个站点。但我这样做有很多麻烦。如果我将cloudfront选项转发标题设置为,则会缓存来自apache的默认index.html(可能是因为CF正在缓存LB URL)。如果我将转发标题设置为白名单并在白名单标题中添加主机,则网站会正常显示但我可以看到响应标题:

X-Amz-Cf-Id:Ij8TsEU2hPehG53Op6LX1zFDmZfYWBOVFn8el8ApicCQYdYEi69HsQ==
X-Cache:Miss from cloudfront

以下是当前情况:

  1. 路线53, A 别名指向CloudFront(对于我的裸域和 www
  2. CloudFront Origin Domain Name =负载均衡器DNS名称, cname 也配置为裸域和www
  3. 带有EC2的负载均衡器
  4. 带有多个站点的EC2(我只想在其中一个站点中使用CF)
  5. 有人可以帮我解释如何正确配置吗?

    更新1 只是一个快速观察,该网站是在WordPress。但是,我不认为使用任何cdn模块(如W3 Total Cache)是必要的,因为我希望缓存整个站点。

1 个答案:

答案 0 :(得分:0)

查看CloudFront分配的“行为”部分。对象缓存有一个设置。如果将其设置为“Use Origin Cache Headers”,则需要为每个请求返回Cache-Control标头。如果您的应用程序未设置Cache-Control标头,则将对象缓存设置为“自定义”,并在“最小TTL”字段中为对象设置适当的TTL。

如果您没有设置自己的Cache-Control标头并且将此设置保留为默认值“Use Origin Cache Headers”,那么您实际上将无视CDN的目的,因为通过CDN提出的每个请求都将有效立即过期,因此通过CDN的每个请求仍将从原点获取。