让清漆在Magento上工作

2022-08-30 23:31:13

首先,请原谅我对清漆完全缺乏了解。这是我第一次尝试使用清漆做任何事情。

我遵循以下示例:http://www.kalenyuk.com.ua/magento-performance-optimization-with-varnish-cache-47.html

但是,当我安装并运行它时,Varnish似乎没有缓存。我确实得到了一个数字的X-Varnish标头和一个值为1.1的Via标头

我被告知(我的ISP)这是因为Magento设置的以下cookie:

Set-Cookie: frontend=6t2d2q73rv9s1kddu8ehh8hvl6; expires=Thu, 17-Feb-2011 14:29:19 GMT; path=/; domain=XX.X.XX.XX; httponly

他们说,我要么必须改变Magento来处理这个问题,要么配置Varnish来处理这个问题。由于更改Magento是不可能的,我想知道是否有人可以给我一个线索,说明我将如何配置Varnish来处理这个cookie?


答案 1

http://moprea.ro/2011/may/6/magento-performance-optimization-varnish-cache-3/ 介绍了使用清漆启用整页缓存的Magento扩展。此扩展依赖于在 github 上发布的 Varnish 配置。

这些是已经实现的功能:

  1. 可行的清漆配置
  2. 使用Varnish(一种超快速缓存HTTP反向代理)启用全页缓存。
  3. 清漆服务器可在管理员中,在系统/配置/常规 - 清漆选项下进行配置
  4. 保存产品、类别和 CMS 页面时,自动清除(仅)缓存页面。
  5. 在Magento Admin中的系统/缓存管理下添加新的缓存类型,并提供停用缓存和刷新缓存的可能性。
  6. 在保存类别导航和需要刷新 Varnish 缓存时通知管理员用户,以便更新所有页面的菜单。
  7. 为购物车中有产品或已登录的用户自动关闭清漆缓存等。
  8. 提供默认的清漆配置,以便模块可用。屏幕截图:https://github.com/madalinoprea/magneto-varnish/wiki

答案 2

如何在清漆中缓存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”!),这可以大大降低您的缓存命中率


推荐