Aem CQ5调度程序和缓存控制头

Aem CQ5调度程序和缓存控制头,aem,cache-control,sling,Aem,Cache Control,Sling,对于在loadbalancer后面缓存多个dispatchers的响应标头,正确的设置是什么 我想向dispatcher发送ETag或Last Modified header,但dispatcher实例之间没有同步,因此在dispatcher的缓存中,同一页的修改日期将不同 什么是正确的解决方案 也许“FileETag Size”会导致所有dispatcher实例上的ETag相同,但我希望有更好的解决方案 谢谢 如果您查看geometrixx示例应用程序上的图像,您将看到epoch作为后缀写入到

对于在loadbalancer后面缓存多个dispatchers的响应标头,正确的设置是什么

我想向dispatcher发送ETag或Last Modified header,但dispatcher实例之间没有同步,因此在dispatcher的缓存中,同一页的修改日期将不同

什么是正确的解决方案

也许“FileETag Size”会导致所有dispatcher实例上的ETag相同,但我希望有更好的解决方案


谢谢

如果您查看geometrixx示例应用程序上的图像,您将看到epoch作为后缀写入到组件实例路径的末尾(通过CQ5)。i、 e./content/geometricxx/mypage/_jcr_content/mycomponent/myimg.img.jpg/1397355982.jpg

您可以用类似的方式创建组件,因此,您不必依赖于标题本身

如果您使用的是边缘缓存解决方案(如F5),则通常不使用修改的历元,而是使用图像字节数据的MD5。这样,只有当内容本身发生变化时,才会指示客户端获取新图像

FileTag大小也不是100%,因为您希望文件的字节数不同。对于有损网络图像算法等,它的工作相对正常,因为文件大小会随着文件的编辑而变化

唯一需要记住的是边缘缓存解决方案在重新生成ETag时的速度。我们发现带有web加速器的F5在这方面做得很好。这项技术允许您永久缓存,大大减少了服务器上的负载,特别是如果您没有无限制的管道和在页面前端重复出现的图像,这些图像会在较长时间内被点击

还有一些更聪明的解决方案值得研究,这些解决方案可以在检测到移动设备时利用HTML5客户端缓存技术,因为在现阶段,桌面上的缓存永远比移动设备好得多,因为移动设备上的缓存要小得多


希望这能有所帮助。

谢谢,这很有帮助!