我正在使用亚马逊的Cloudfront CDN作为静态资产。可以为每个GET请求发出Etag问题。我已经使用特定的Cache-Control信息为我的所有资产设置了元数据,这(据我所知)使得Etag变得多余。我在WebPageTest.org上测试了我的网站的负载性能,它让我对这些不必要的Etags感到满意。如果它们实际上是不必要的,有没有人知道如何抑制它们的排放?
答案 0 :(得分:1)
如果您在原始服务器上使用Origin Server并禁用了ETag,CloudFront将不会在其标题中添加ETag。我通过在原始服务器上禁用ETag来验证它。
答案 1 :(得分:0)
如果Cloudfront提供一致的Etags,无论您从哪个节点下载资产,那么这应该可以最大限度地减少问题。我通过以下方式对此进行了测试:
从两个不同的位置解析到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-请求-ID 年龄 X-AMZ-CF-ID 通过
希望这有帮助,
大卫
[已编辑 - 根据以下良好更正删除了对eTags的评论]