配置Commerce应用程序以使用Varnish

要将Commerce配置为使用涂漆,请执行以下操作:

  1. 以管理员身份登录到管理员。

  2. 单击“Stores”>“设置”>“配置”>“高级”>“系统”>“全页缓存”。

  3. 在​ Caching Application ​列表中,单击​ 清漆缓存

  4. 在​ TTL for public content ​字段中输入值。

  5. 展开​ Varnish Configuration ​并输入以下信息:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2
    字段 描述
    访问列表 输入要使其内容失效的完全限定的主机名、IP地址或无类域间路由(CIDR)表示法IP地址范围。 请参阅清漆缓存清除
    后端主机 输入完全限定的主机名或IP地址,并侦听Varnish 后端 ​或​ 原始服务器 ​的端口;即,提供内容Varnish的服务器将加速。 通常,这是您的Web服务器。 查看清漆缓存后端服务器
    后端端口 源服务器的侦听端口。
    宽限期 确定在后端无响应时,Varnish提供过时内容的时长。 默认值为300秒。
    处理参数大小 指定全页缓存的{BASE-URL}/page_cache/block/esi HTTP终结点上要处理的布局句柄的最大数量。 限制大小可以提高安全性和性能。 默认值为100。
  6. 单击​ 保存配置

您还可以使用C命令行界面工具从命令行激活Varnish,而不是登录到Admin:

bin/magento config:set --scope=default --scope-code=0 system/full_page_cache/caching_application 2

导出Varnish配置文件

要从Admin导出Varnish配置文件:

  1. 单击其中一个导出按钮以创建可与“清漆”一起使用的varnish.vcl

    例如,如果您有Varnish 4,请单击​ Export VCL for Varnish 4

    下图显示了一个示例:

    将Commerce配置为在管理员中使用Varnish

  2. 备份您现有的default.vcl。 然后将您刚刚导出的varnish.vcl文件重命名为default.vcl。 然后将文件复制到/etc/varnish/目录。

    code language-bash
    cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak2
    
    code language-bash
    mv <download_directory>/varnish.vcl default.vcl
    
    code language-bash
    cp <download_directory>/default.vcl /etc/varnish/default.vcl
    
  3. Adobe建议您打开default.vcl并将acl purge的值更改为Varnish主机的IP地址。 (您可以在单独的行上指定多个主机,也可以使用CIDR表示法。)

    例如,

    code language-conf
     acl purge {
        "localhost";
     }
    
  4. 如果要自定义Vagrant运行状况检查或宽限模式或saint模式配置,请参阅高级清漆配置

  5. 重新启动Varnish和您的Web服务器:

    code language-bash
    service varnish restart
    
    code language-bash
    service httpd restart
    

缓存静态文件

默认情况下,不应缓存静态文件,但如果要缓存它们,可以编辑VCL中的部分Static files caching以包含以下内容:

# Static files should not be cached by default
  return (pass);

# But if you use a few locales and do not use CDN you can enable caching static files by commenting previous line (#return (pass);) and uncommenting next 3 lines
  #unset req.http.Https;
  #unset req.http./* {{ ssl_offloaded_header }} */;
  #unset req.http.Cookie;

在配置Commerce以使用Varnish之前,您必须进行这些更改。

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c