如何在清漆中缓存Magento(理论) - 有2个组件
1) 静态资产(例如Images, CSS, JS) - 这是一个简单的常见模式,涉及检测属于此类别的请求并设置缓存时间(或依赖于源服务器发送的缓存时间) 以 gist 形式提供的示例
2)HTML文档 - 这是一个好的Magento解决方案中更复杂的部分。在Varnish中缓存HTML文档以提高Magento性能至关重要。HTML文档生成是Magento服务器将做的最昂贵(耗时)的事情。
缓存 HTML 文档的挑战来自个性化内容。
个性化内容和 HTML 文档
Magento和所有其他电子商务网站通过会话管理特定用户的状态。会话是该特定用户在您网站上的状态的记录。这包括以下内容:“Hello Bob” - 在页面顶部“购物车中的4件物品” - 每个页面上购物车的状态
这些是无法在用户之间共享的项目,如果发生这种情况,可能会导致重大问题(我们称之为“会话泄漏”)。
如果HTML页面包含有关该人是谁以及购物车中有什么的个性化信息,我们如何缓存HTML页面?
有2种主要方法可以实现这一点:在页面加载后通过其他请求加载页面的个性化元素 此处的常见实现方法是使用AJAX请求个性化的页面元素 利用技术将HTML文档的组件标记为可缓存且其他组件不可访问(或在用户之间不可共享)。Varnish支持一种称为ESI(边缘侧包含)的技术,该技术允许以不同方式缓存HTML文档的不同部分。
您的清漆实施策略必须考虑用户个性化。
清漆的实施选项
Magento 1.X - 在Magento版本1中缓存HTML文档的最广泛使用的方法是名为Magento Turpentine(由Nexus提供)的开源产品。这是一个安装(通过Magento Connect)的插件,它会自动将ESI标签添加到您的HTML文档中,以便Varnish可以缓存这些资源。洋红色松节油安装/指南
Magento 2.X - 最新版本的Magento(目前处于测试阶段)支持Varnish作为其推荐的生产中HTML缓存解决方案。这是个好消息,清漆是Magento的推荐选项,开箱即用,可以提高您的网站速度。
如何使清漆和洋红色工作良好
部署是一回事,一旦您实施了Varnish Magento解决方案并正常工作,接下来的步骤就是了解其性能如何。逐个请求地获取有关缓存命中率和详细日志的指标可能是一个挑战,因为它涉及部署一系列额外的基础设施(或一次性进行手动日志收集)。
我们最近构建了这个基础设施,以便在云中运行Varnish即服务(具有完整的日志/指标) - www.section.io - 除了,这可能是Varnish和Magento项目实际成功的最重要因素,因为您需要不断调整您的实现以管理诸如URL中各种查询字符串之类的事情(你好谷歌分析“gclid”!),这可以大大降低您的缓存命中率