我对静态资产使用亚马逊的Cloudfront CDN。 Couldfront为每个GET请求发布Etag。我已经用特定的缓存控制信息为我的所有资产设置了元数据,据我所知,这使得Etag变得多余。我在WebPageTest.org上测试了我的网站的负载性能,并为我提供了这些不必要的Etags。如果他们实际上是不必要的,是否有人知道一种抑制他们被排放的方法?我可以禁止在AWS Cloudfront上发布Etag标头吗?
回答
如果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 通过
希望这有助于,
大卫
[编辑 - 基于以下良好的矫正上的ETag删除评论]
这只是不正确的,Web性能监视你关于Etag和Last-Modified标题的错误,因为即使你在Cache-Control标题中有很长的最大时限,这两个标题也会导致不必要的往返服务器。如果Etag(和最后修改)被正确使用,这些往返行程的结果将是状态码304.但是这里的差异是300ms与2ms(浏览器缓存),并且如果使用许多静态资产(css ,js,图像)。 – Evgeny 2012-01-08 17:35:26
如果您使用的是产地丝氨酸版本和禁用ETag,CloudFront不会将ETag添加到其标题中。我通过在源服务器上禁用ETag来验证它。
从S3直接使用CloudFront时,有没有办法抑制Etag和Last-Modified? – saver 2014-01-24 18:40:21
- 1. AWS Cloudfront不转发Accept-Language标头
- 2. 我可以禁止在Guice注射吗?
- 3. AWS CloudFront,`Vary`标头和内容协商
- 4. 无法在nginx上设置etag标头
- 5. CloudFront背后的AWS API网关,转发标头?
- 6. 你可以设置HTTP标头发布
- 7. 我可以重置存储在S3和CloudFront上的对象上的过期:标头吗?
- 8. 在Express Node.js中禁用etag头文件
- 9. AWS CloudFront可以同时提供动态和静态内容吗?
- 10. 我可以阻止IVideoWindow :: put_Visible发布消息吗?
- 11. HTTP:生成ETag标头
- 12. 有人可以帮我在twitter上发布状态吗?
- 13. 我们可以在Android应用上发布Google plus吗?
- 14. 我可以在游戏市场上发布hello world app吗?
- 15. 我们可以使用twitter API在twitter上发布图片吗?
- 16. 我可以发布msi和exe吗?
- 17. 在Mayavi中可以用鼠标禁止轴旋转吗?
- 18. 在AWS CloudFront和S3上配置X-Frame-Options响应头
- 19. AWS CloudFront定制SSL证书已禁用
- 20. 我可以在Java Web Start中禁止加载对话框吗?
- 21. jQuery AJAX可以禁止所有人吗?
- 22. 在计算ETag时,我应该考虑HTTP响应头吗?
- 23. 我可以在OpenSSL中禁用MAC吗?
- 24. https上的S3没有cloudfront可能吗?
- 25. 我可以停止IIS吗?
- 26. 我可以在AWS Lambda上使用Google Analytics吗?
- 27. 我可以禁用红宝石记录器的日志标头吗?
- 28. 禁止链接到已发布帖子上的发布帖子
- 29. 我可以禁用Xceed DoubleUpDown控制箭头吗?
- 30. 我可以在CKEditor中发布我的编辑信息吗?
对此有何更新? ETag强制多个获取请求(即使设置了Expires和Max-age)。 – 2012-02-19 19:11:15