6

我将亚马逊的 Cloudfront CDN 用于静态资产。Canfront 为每个 GET 请求发出一个 Etag。我已经为我的所有资产设置了带有特定缓存控制信息的元数据,这(据我所知)使 Etag 变得多余。我在 WebPageTest.org 上测试了我的网站的加载性能,它让我对这些不必要的 Etags 产生了兴趣。如果它们实际上是不必要的,有没有人知道抑制它们被释放的方法?

4

2 回答 2

1

如果您使用的是源服务器并在源服务器上禁用了 ETag,CloudFront 不会在其标头中添加 ETag。我通过禁用源服务器上的 ETag 来验证它。

于 2012-06-14T10:41:21.047 回答
0

如果无论您从哪个节点下载资产,Cloudfront 都能提供一致的 Etag,那么这应该可以最大限度地减少问题。我通过执行以下操作对此进行了测试:

从两个不同的位置解析到 Cloudfront,我验证了 CNAME 解析到完全不同的 IP 地址集。第一个服务器解析为亚马逊 LAX 数据中心 (lax1.cloudfront.net) 中的一组 8 个 IP 地址,第二个服务器解析为亚马逊 SFO 数据中心 (sfo4.cloudfront.net) 中的 8 个 IP 地址。

我在我们的 Cloudfront 发行版中选择了一个对象,并从每个位置执行了“wget --server-response”,然后比较了结果。我为每个数据中心多次执行此操作,以从每个数据中心的不同 IP 地址获取响应。

结果是 Etags 是相同的,无论我点击哪个数据中心,以及从该数据中心响应的 IP 地址。

我确实注意到服务器之间的以下标头 DID 不同 x-amz-id-2 x-amz-request-id Age X-Amz-Cf-Id Via

希望这可以帮助,

大卫

[已编辑 - 根据下面的良好修正删除了对 eTag 的评论]

于 2011-02-23T08:42:12.557 回答