【发布时间】:2014-10-26 01:55:41
【问题描述】:
我的想法是使用云端缓存一个在 EC2 中的整个站点。但我很难做到这一点。如果我将 cloudfront 选项 Forward Headers 设置为 none,则会缓存来自 apache 的默认 index.html(可能是因为 CF 正在缓存 LB URL)。如果我将 Forward Headers 设置为 whitelist 并在 Whitelist Headers 中添加 host 网站会正常显示,但我可以在响应头:
X-Amz-Cf-Id:Ij8TsEU2hPehG53Op6LX1zFDmZfYWBOVFn8el8ApicCQYdYEi69HsQ==
X-Cache:Miss from cloudfront
这是当前的场景:
- Route 53 与 A 别名指向 CloudFront(对于我的裸域和 www)
- CloudFront with Origin Domain Name = 负载均衡器 DNS 名称,cname 也配置为裸域和 www
- 使用 EC2 的负载均衡器
- 具有多个站点的 EC2(我只想在其中一个站点中使用 CF)
谁能帮助我如何正确配置它?
更新 1 快速观察一下,该网站位于 WordPress 中。但是,我认为没有必要使用任何 cdn 模块(如 W3 Total Cache),因为我希望缓存整个站点。
【问题讨论】:
-
X-Cache:Miss from cloudfront正是您应该期望看到的,第一次通过 Cloudfront 请求资源。这意味着 Cloudfront 没有该页面的缓存副本。刷新,您应该开始看到“命中”而不是“未命中”。你试过吗? -
你好迈克尔,很遗憾没有......我在配置后重新加载了几个页面,现在(9 小时后)我仍然收到“X-Cache:Miss from cloudfront”。这里的古玩是,如果我将 Forward Headers 设置为 None,则默认 index.html 被缓存
-
在您的 CF 发行版的行为部分,您将对象缓存设置为什么?如果它设置为“使用原始缓存标头”,那么您需要为每个请求返回一个 Cache-Control 标头。如果您不这样做,那么 CF 将立即有效地使每个请求过期。您可以通过将对象缓存设置为自定义并指定 TTL 来对此进行测试。
-
@BruceP,你是对的。现在它工作正常。你能写一个答案只是为了在stackoverflow中注册吗?
标签: amazon-cloudfront amazon-elb