如何在 Magento 2 中安装和设置 Varnish 缓存
缓存是任何网站的关键部分。对于像 Magento 2 这样的重型平台,缓存变得更加重要。通过使用缓存,商家可以减少页面加载时间,加快页面响应,从而创造更好的用户体验。
Magento 2 中最流行的缓存技术之一是 Varnish。Varnish 作为一个完整的页面缓存机制来减少 Magento 2 服务器的工作量。因此,性能得到改善。
Varnish Cache 是一个开源的 Web 应用程序加速器(HTTP 代理)。Varnish 将数据存储在内存中。这使 Varnish 能够减少期货的响应时间和网络带宽消耗。与 Apache 和 Nginx 等 Web 服务器不同,Varnish 专为与 HTTP 协议一起使用而设计。
如何在 Magento 2 中安装 Varnish
Magento 有自己的缓存机制(读取、写入数据到文件),但效率不够高。
Magento 本身强烈推荐 Varnish 为其用户。要在 Magento 2 上运行 Varnish,您需要安装 Varnish 并将 Varnish 配置文件(VCL 文件)部署到系统中的 Varnish 实现中。
以 root 用户 (sudo su) 运行以下一系列命令。
apt-get install apt-transport-https curl https://repo.varnish-cache.org/GPG-key.txt | apt-key add - echo "deb https://repo.varnish-cache.org/ubuntu/ trusty varnish-4.1" \ >> /etc/apt/sources.list.d/varnish-cache.list apt-get update apt-get install varnish
如果一切顺利,您应该能够看到 Varnish 版本:
varnishd -V
如何在 Magento 2 中配置 Varnish
第一步:修改webserver监听端口
安装 Varnish 后,您需要配置当前的 Web 服务器。
将您的网络服务器配置为侦听默认端口 (80) 以外的端口 (8080)。
找到您当前的“服务器”指令并将监听端口更改为 8080。
server { listen 8080 default_server; server_name your-magento2-store.dev; ... }
第二步:修改default.vcl
备份旧的默认值
cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak
从 Magento 2 后端下载默认 VCL 配置。
转到商店 > 配置 > 高级 > 系统 > 整页缓存。单击“缓存应用程序”下拉框。从列表中选择“清漆缓存”。
下载与您在系统中安装的清漆等效的清漆文件版本。
Magento 2 中的清漆配置
复制这个你刚刚导出的文件到 /etc/varnish/default.vcl
查找并编辑下面的行backend default
# Default backend definition. Set this to point to your content server. backend default { .host = "127.0.0.1"; .port = "8080"; }
在哪里
- .host – Varnish 后端或源服务器的完全限定主机名或 IP 地址和监听端口;也就是说,提供内容 Varnish 的服务器会加速。通常,这是您的 Web 服务器。
- .port – Web 服务器的监听端口(本例中为 8080)
第三步:配置Nginx端口80(或443)传给Varnish
打开 Nginx 配置文件(位于 /path/to/nginx/sites-enabled/default)
server { listen 80; location / { proxy_pass http://127.0.0.1:6081/; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Ssl-Offloaded "1"; proxy_set_header X-Forwarded-Port 443; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Ssl on; }
6081 是 varnish 的默认端口。
最后,重启 Varnish & Nginx(或 apache)
service nginx restart service varnish restart
如何在 Magento 2 中验证清漆
第一步:检查 Varnish 是否监听 6081 端口
netstat -tulpn | grep varnished
第二步:验证var/cache中的内容,var/page_cache文件夹没有重新生成
由于 FPC 配置为从 Varnish 提供内容,因此一旦清除,缓存文件夹(var/cache、var/page_cache)应始终为空。