【magento2配置专题11】配置和使用Varnish

Varnish 解决方案概述

Varnish 缓存是一个开放源代码的Web应用程序加速器.

Magento 2 支持Varnish 3.0.5以上的版本.

magento 2 强烈建议使用Varnish 代替默认的. full-page 缓存,因为他比默认的缓存块很多。

Varnish 解析图

Basic Varnish diagram

过程概述

本主题讨论如何使用最少的参数和测试来安装Varnish。然后你可以从Magento 2后台导出一个Varnish配置。

这个过程可以概括如下:

  1. 通过访问任何magento页面如果你得到HTTP响应头表明Varnish工作测试成功
  2. 安装magento 2 登录后台创建一个Varnish 配置文件.
  3. 覆盖原先的Varnish配置文件.
  4. 再次测试一切。

    如过 <Magento 2 安装目录>/var/page_cache 目录下面什么都没有,表示Varnish 配置成功!

下一步

安装Varnish

有关安装Varnish的更多信息,请网上搜索教程。

确认你的Varnish版本

输入下面的命令:

varnishd -V

示例:

varnishd (varnish-4.0.3 revision b8c4a34)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2014 Varnish Software AS

下一步

配置Varnish 和 web服务器

配置您的web服务器

配置Web服务器监听默认端口80以外的端口,因为Varnish直接响应传入的HTTP请求,而不是web服务器。

在后面的章节中,我们使用端口8080作为一个例子.

改变Apache 2.2监听端口:

  1. 打开 /etc/httpd/conf/httpd.conf 在文本编辑器中.
  2. 查找Listen 指令.
  3. 将端口的值更改为 8080.
  4. 保存更改 httpd.conf .

修改Varnish系统配置

  1. 打开 /etc/sysconfig/varnish (或 /etc/default/varnish 在 Debian 和 Ubuntu) 在文本编辑器中.
  2. 设置Varnish 端口为 80:

    VARNISH_LISTEN_PORT=80
    
  3. ## Alternative 1, Minimal configuration, no VCL
    #DAEMON_OPTS="-a :6081 \
    #             -T localhost:6082 \
    #             -b localhost:8080 \
    #             -u varnish -g varnish \
    #             -s file,/var/lib/varnish/varnish_storage.bin,1G"
    ## Alternative 2, Configuration with VCL
    #DAEMON_OPTS="-a :6081 \
    #             -T localhost:6082 \
    #             -f /etc/varnish/default.vcl \
    #             -u varnish -g varnish \
    #             -S /etc/varnish/secret \
    #             -s file,/var/lib/varnish/varnish_storage.bin,1G"
    
  4. 保存更改 /etc/sysconfig/varnish . 

下一步

 

配置Magento 2使用Varnish

配置Magento使用Varnish :

  1. 用管理员身份登录magento 2.
  2. 点击 STORES > Configuration > ADVANCED > System > Full Page Cache
  3. 从缓存应用列表中点击Varnish 缓存
  4. 点击 保存配置.
  5. 单击一个导出按钮以创建 default.vcl 你可以使用 Varnish.

    如果使用Varnish 4, 点击 Export VCL for Varnish 4

    如下图:

    配置Magento 2使用Varnish in the Admin

  6. 代替之前的 default.vcl

最后一步

最后的验证

验证HTTP响应头

当你访问magento页面时使用curl或其他工具查看HTTP响应头

确保你使用的magento 2 开发者模式; 否则,你将无法看到。

例如,

curl -I -v --location-trusted 'http://192.0.2.55/magento2'
X-Magento-Cache-Control: max-age=86400, public, s-maxage=86400
Age: 0
X-Magento-Cache-Debug: MISS

503(Backend Fetch Failed后端获取失败)

如果Magento2缓存标签使用长度超过8192个字符,你可以看到HTTP 503(后台读取失败)在浏览器中的错误。这些错误可能显示如下:

Error 503 Backend fetch failed
Backend fetch failed

为了解决这个问题,修改varnish配置文件如下:

  1. 用 root 用户打开:

    • CentOS 6: /etc/sysconfig/varnish
    • CentOS 7: /etc/varnish/varnish.params
    • Ubuntu: /etc/default/varnish
  2. 搜索 http_resp_hdr_len 参数.
  3. 如果参数不存在增加 thread_pool_max.
  4. 设置 http_resp_hdr_len

    示例:

    -p http_resp_hdr_len=64000 \
    

    代码片段:

    # DAEMON_OPTS is used by the init script.
    DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
         -f ${VARNISH_VCL_CONF} \
         -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
         -p thread_pool_min=${VARNISH_MIN_THREADS} \
         -p thread_pool_max=${VARNISH_MAX_THREADS} \
         -p http_resp_hdr_len=64000 \
         -S ${VARNISH_SECRET_FILE} \
         -s ${VARNISH_STORAGE}"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值