【问题标题】:Magento full page caching with varnishMagento 使用 varnish 进行整页缓存
【发布时间】:2012-09-02 04:13:50
【问题描述】:

我一直在研究 magento 中的整页缓存,但对此以及动态块的发送方式没有任何意义。

对于包含动态数据的块,仍需要引导应用程序并构建布局以生成块,例如购物篮内容、最近查看等

服务器现在正在做更多的工作。

这是正确的,如果是,如何解决这个问题

【问题讨论】:

    标签: magento caching varnish


    【解决方案1】:

    我的 2 美分:

    这取决于你如何做你的 FPC...

    “代理缓存”

    如果您使用其他一些缓存前端/代理,例如 nginx 或 varnish 或 [在此处插入一个],那么它确实会像您一样减少负载:

    1. 一个请求获取缓存后页面的“框架” 甚至不接触 php 或 magento 或 mysql,只提供静态 文件。因此,一旦缓存它就不需要引导应用程序或 加载和解析任何布局/配置/系统 xml。
    2. 第二个请求是获取动态内容,并且要轻得多。是的,它 仍然必须使用 config/layout/system xml 但这应该 已经被缓存并且它不必创建/处理那么多 块取决于动态需求。

    还取决于您的需要,您可以将信息存储在 cookie 中以供 js 在页面加载后使用而不执行第二次请求,这再次取决于动态信息的动态和敏感程度。

    所以请求流程是:

    1. 请求-> nginx/varnish/etc(超快)-> 响应...
    2. ajax 请求 -> Magento 用于动态内容(处理整个页面时更轻松)-> 响应 -> js 替换元素。

    是的,您确实为额外的往返支付了费用,但是您确实可以立即为客户加载内容,并且在处理 ajax 请求时,浏览器可能会从服务器拉取图像/css/其他 js,这很好。

    “Magento FPC”

    老实说,我不知道企业版是如何做到的(只是还没有阅读代码),但在处理大多数(不是全部)事情之前,有一个部分可以附加缓存处理器。在那种环境中,应用程序已经被引导并加载了一些配置,因此您实际上可以从缓存中拉取 FPC,然后用特定信息替换占位符,并在一个请求中将其发送出去。

    再次请求流程:

    请求 -> Magento(在路由等之前)-> 打孔 -> 响应。

    因此,在动态内容出现之前,事情不会开始加载,但您没有额外的往返行程。


    结论:

    至于哪一个是最好的,这取决于您的需求和设置。这些只是我见过的两种不同的设置,在我的测试中,任何一种方法的表现都完全没有 FPC。

    HTH

    【讨论】:

      【解决方案2】:

      不确定我是否正确理解了您的问题,但 Magento 和您的服务器将做更少的工作,因为它只会生成和交付您通过 XML 定义的打孔的动态块。页面的其余部分是由 varnish 提供的静态 html,它甚至不会将这些请求传递给 magento。

      看看这张来自 Fabrizio Branca 博客的图表:

      【讨论】:

      • 是的,但是为了创建打孔块,必须引导系统并生成布局,解析等等。所以实际上还有很多工作要做。这是我的问题
      • @Socrates 这就是缓存的工作原理。一个请求完成了构建某些东西的所有“艰苦工作”,然后下一百万个请求从缓存中提取该信息。
      【解决方案3】:

      是的,第二个请求到达服务器。 它还在第 30 行加载布局。这意味着将加载某些句柄 - 默认、customer_logged_out(或 in)和呼叫控制器(我错过了什么吗?)。在此博客http://www.fabrizio-branca.de/make-your-magento-store-fly-using-varnish.html 中,建议您将占位符添加到默认句柄。 unsetChild 方法允许您在调用控制器中仍按名称加载块。其原因在一些艾伦风暴博客中有所描述,并且(我认为)他的一个模块处理了一些关于删除而不是未设置块的问题。这个模块并没有真正处理缓存失效。也许你应该看看这个帖子magento open source full page cache

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-24
        • 1970-01-01
        • 2012-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-07
        • 2015-05-21
        相关资源
        最近更新 更多