Magento 2配置教程加速网站Varnish

今天给大家讲解下Magento 2配置教程加快你的网页打开速度,这里我们是Magento 2强烈推荐你使用Varnish Cache,这会增强你的网页打开速度。

那么接下来说说什么是Varnish呢?那我就给大家介绍下把,请跟随我不要离开。

什么是Varnish 

根据官网介绍:

Varnish Cache是​​Web应用程序加速器,也称为缓存HTTP反向代理。您可以将其安装在任何使用HTTP的服务器之前,并将其配置为缓存内容。Varnish Cache确实非常快。根据您的体系结构,通常可以将交付速度提高300到1000倍。

其实varnish是前端的缓存加速软件,不用多说,加载时间在很大程度上有助于留住网站访问者,以及更好的搜索引擎排名。通过采用各种技术,如优化图片,集成分发内容网络(CDN),使用优秀的缓存服务器等,网站管理者不断努力提高其网站的页面加载时间。虽然说上面的都是很好的解决方案,但本文的讨论重点是特别关注Varnish Cache缓存。

Varnish在内存中存储(或缓存)文件或文件片段;这使Varnish能够减少未来等效请求的响应时间和网络带宽消耗。与Apache和nginx等web服务器不同,Varnish专为与HTTP协议一起使用而设计。

Varnish Cache能做什么

Varnish缓存是一个前端web加速器,它允许动态网站内容处理高流量流入。它是一个反向缓存HTTP代理,缓存来自服务器的静态和动态内容,并改善站点访问者的体验。这大大提高了网站的速度。

Varnish缓存还允许开发人员使用通常称为VCLVarnish配置语言来配置规则和设置策略。简单地说,VCL是一个让您(站点所有者/开发人员)直接指示Varnish如何处理站点流量的程序。因此,它允许您完全控制要缓存的内容和方式。Facebook、Twitter等领先的社交媒体网站或Wikipedia等内容丰富的网站都使用Varnish缓存来管理它们的内容缓存。

Varnish Cache什么情况下使用

如果您是一个电子商务网站或媒体网站,运行在高内容、高流量,并寻求高端性能,那么选择Varnish缓存是你最好的解决方案。当然,无论您选择如何处理您的网站,最终都会影响您的网站性能、用户体验,当然还有业务。

Varnish缓存和NGINX缓存差异

Varnish缓存和NGINX缓存是两个重要的和流行的缓存解决方案,可以帮助提高您的企业网站的速度。

实际上,很难将Varnish与NGINX进行比较。因为Varnish和NGINX的基础非常相似;两者都可以用作服务器的反向代理和负载平衡器。然而,如果我们深入研究他们的技术,就会发现Varnish与NGINX缓存性能之间很少有可以相互对立的特定方面。

这两个解决方案都可以用作反向代理和负载平衡器。它们还允许您配置缓存,并有助于防止DDoS攻击。然而,也有一些差异,如Varnish支持ESI而Nginx不支持,Nginx支持SSL而Varnish®不支持。此外,直到最近(2016年9月)Varnish®才开始支持HTTP/2

尽管大家都知道Varnish在缓存设置方面比Nginx更具可配置性,但Fast CGI本身仍然具有相当高的可配置性,能够满足大多数用户的需求。如果您仍然不确定哪种解决方案更好,您可以自己尝试这两种方法,并运行一些比较测试。每个用例都是不同的,您很可能会发现Varnish是您的项目的更好的选择。

Magento 2支持版本Varnish 4.x,版本Varnish 5.x and版本Varnish 6.x

Varnish 的拓扑图

下图显示了Magento拓扑中的Varnish的基本视图。

在上面的图中,用户User在internet网络上的HTTP请求导致了对CSS、HTML、JavaScript和图像(统称为资产)的大量请求。Varnish位于web服务器前面,并将这些请求委托给web服务器。这样就可以较少服务器的负载,同时又可以增强了高并发。

当web服务器返回内容时,可缓存的内容存储在Varnish中。对这些内容在后续请求都由Varnish完成(这意味着请求不会到达web服务器)。Varnish极其快速地返回缓存的内容。结果是更快的响应时间将内容返回给用户,并且减少了Magento必须完成的请求数量。

由Varnish缓存的内容将会在可配置的间隔后会过期,或者被相同资产的更新版本所替换。您还可以使用Magento AdminMagento cache:clean命令手动清除缓存。

Magento 2安装Varnish Cache 

在Magento 2安装之前你的服务器需要安装Varnish软件,如下

1 On Debian and Ubuntu

On RHEL, CentOS and Fedora

如果安装成功完成,您将有以下版本之一,这取决于您的发行版:

  • Debian: 3.0.2-2+deb7u1
  • Ubuntu: 3.0.2-1
  • Fedora, CentOS, and RHEL (该版本与Varnish从EPEL存储库中提供的版本相同): v4.0.2

最后,如果安装过程没有为您完成,您需要手动启动Varnish,并在启动时启用它。

3 在Debian, Ubuntu, CentOS/RHEL 6。x和Fedora 15-20

CentOS / RHEL 7。x和Fedora 21

5 确认Varnish version版本

输入以下命令来显示您正在运行的Varnish版本:

6 示例如下:

配置Varnish和您的web服务器

a. 配置您的web服务器

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

在下面的部分中,我们将使用端口8080作为示例。

如果你是Apache,要更改Apache 2.2的监听端口:

  1. 在文本编辑器中打开/etc/httpd/conf/httpd.conf。
  2. 找到Listen指令。
  3. 将监听端口的值改为8080。(您可以使用任何可用的侦听端口。)
  4. 将更改保存到httpd.conf并退出文本编辑器。

b.修改Varnish系统配置

  1. 拥有root权限的用户,在文本编辑器中打开你的Vanish配置文件:
    CentOS 6: /etc/sysconfig/varnish
    CentOS 7: /etc/varnish/varnish.params
    CentOS 8: /etc/varnish/varnish.params
    Debian: 
    /etc/default/varnish
    Ubuntu: /etc/default/varnish
  2. 设置Varnish监听端口为80:
    VARNISH_LISTEN_PORT=80

 Varnish 4.*版本,确保DAEMON_OPTS包含-a参数的正确监听端口(即使VARNISH_LISTEN_PORT被设置为正确的值):

c.将更改保存到Varnish配置文件并退出文本编辑器。

修改default.vcl

下面提供最小配置(根据自己的服务器硬件进行自己配置),以便Varnish返回HTTP响应头。这使您能够在配置Magento使用Varnish之前验证Varnish的工作。

  1. 备份default.vcl:

  2. 打开/etc/varnish/default.文本编辑器中的vcl。
  3. 找到下列节:

  4. 用Varnish后端或起源服务器的完全限定主机名或IP地址和侦听端口替换.host的值;也就是说,提供内容修饰符的服务器将会加速。
  5. 将.port的值替换为web服务器的侦听端口(本例中为8080)。例如:Apache安装在主机192.0.2.55上,Apache监听端口8080:

  1. 将更改保存为默认值。然后退出文本编辑器。
  2. 重启Varnish:

如果Varnish无法启动,请尝试从命令行运行它,如下所示:

开启Varnish

1 如果Varnish无法作为服务启动,则从以下命令行启动它:

2 启动Varnish子流程:

当出现提示时,输入start下面显示的消息确认启动成功:

网络查询 netstat

登录Varnish服务器,输入以下命令:

以下输出:

前面显示了在端口80上运行的Varnish和在端口8080上运行的Apache。如果看不到varnishd的输出,请确保Varnish正在运行。

查看Varnish log日志

确保Varnish正在运行,然后在Varnish服务器上输入以下命令:

在网络浏览器中,可以访问任何Magento 2页面。

命令提示符窗口中显示的响应头的长列表。像下面这样的标题:

查看HTML响应头

有几种方法可以查看响应头,包括使用浏览器插件或浏览器检查器。

下面的示例使用curl。您可以在任何可以使用HTTP访问Magento服务器的机器上输入此命令。

例如

下面这样的标题:

配置Magento使用Varnish

Magento管理中导入一个Varnish配置或者配置,该过程可以总结如下:

  1.  以管理员身份登录到Magento Admin
  2. 点击 存储(Stores)>设置(Settings)>配置(Configuration) >高级(Advanced) >系统(System)>全页缓存(Full Page Cache)
  3. 从缓存应用(Caching Application)程序列表中,单击Varnish缓存(Varnish Caching)
  4. 在TTL中为公共内容(TTL for public content )字段输入一个值。
  5. 展开Varnish配置(Varnish Configuration)并输入以下信息:

    FIELDDESCRIPTION
    Access listEnter the fully qualified hostname, IP address, or Classless Inter-Domain Routing (CIDR) notation IP address range for which to invalidate content.

    More information

    Backend hostEnter the fully qualified hostname or IP address and listen port of the Varnish backend or origin server; that is, the server providing the content Varnish will accelerate. Typically, this is your web server.

    More information

    Backend portOrigin server’s listen port.
    Grace periodThe grace period determines how long Varnish serves stale content if the backend is not responsive. The default value is 300 seconds.
  6. Click Save Config.

你也可以从命令行激活Varnish——而不是登录到Magento管理——使用Magento命令行界面工具:

如下图配置

最后如果您的<magento_root>/var/page_cache目录中没有任何内容,那么您已经成功地使用Magento配置了Varnish !

如果有不懂的地方请留言,SKY8G网站编辑者专注于研究IT源代码研究与开发。希望你下次光临,你的认可和留言是对我们最大的支持,谢谢!

上一篇: 2020年预计电子商务在线销售将是大幅度提升

下一篇: VM VirtualBox6.1在windows 10系统上安装Ubuntu Budgie 19最新版本

登录 评论
avatar