浏览文章

文章信息

Magento2.4 从安装到配置Varnish Magento2.4安装教程 29687

1、安装varnish

Ubuntu:

sudo aptitude update && sudo aptitude install varnish

CentOS:

yum update && yum install varnish

验证:

varnishd -V

2、修改服务器软件侦听端口

原因:varnish需要侦听80端口提供高速的缓存页面数据来更快响应请求,Magento太慢,默默退居二线为Varnish提供数据。

我服务器软件的侦听端口都改成了79,退居二线默默为varnish提供支持。

apache修改httpd.conf文件的listen 80 为listen 79

3、修改默认的Varnish配置

要修改Varnish系统配置,请执行以下操作:

以具有root特权的用户身份,在文本编辑器中打开Vanish配置文件:

CentOS 6: /etc/sysconfig/varnish

CentOS 7: /etc/varnish/varnish.params

Debian: /etc/default/varnish

Ubuntu: /etc/default/varnish

找不到就直接跳过修改

sudo vim /lib/systemd/system/varnish.service

将Varnish侦听端口设置为80:

VARNISH_LISTEN_PORT=80

对于Varnish 4. *,请确保DAEMON_OPTS包含该-a参数的正确侦听端口(即使VARNISH_LISTEN_PORT设置为正确的值):

DAEMON_OPTS="-a :80 \

   -T localhost:6082 \

   -f /etc/varnish/default.vcl \

   -S /etc/varnish/secret \

   -s malloc,256m"

针对Ubuntu15+

sudo vim /lib/systemd/system/varnish.service

找到ExecStart修改其默认启动端口。

sudo systemctl daemon-reload


将所做的更改保存到Varnish配置文件中,然后退出文本编辑器。


4、修改 default.vcl规则

(1)本节讨论如何以最少的配置,让Varnish返回HTTP响应。这样,您可以在配置Magento使用Varnish之前验证Varnish的工作原理。

要最小化配置Varnish:

备份default.vcl:

cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak

/etc/varnish/default.vcl在文本编辑器中打开。

vim /etc/varnish/default.vcl

找到以下节:

backend default {

    .host = "127.0.0.1";

    .port = "80";

}

用.host完全限定的主机名或IP地址以及Varnish 后端或原始服务器的侦听端口替换的值;也就是说,提供内容Varnish的服务器将加速。

通常,以下是您的Web服务器信息在varnish中的配置。

将值替换为.port Web服务器的侦听端口(在本示例中为8080)。

示例:Apache安装在主机192.0.2.55上,Apache正在侦听端口8080:

backend default {

    .host = "192.0.2.55";

    .port = "8080";

}

提示:如果Varnish和Apache在同一主机上运行,建议您使用IP地址或主机名而非localhost。

将更改保存到default.vcl并退出文本编辑器。

重新启动varnish :

service varnish restart

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

varnishd -d -f /etc/varnish/default.vcl

这应该显示错误消息。


(2)验证Varnish是否正常工作:

以下各节讨论如何验证Varnish是否可以正常工作,而无需配置Magento来使用它。在配置Magento之前,您应该尝试此操作。

按照显示的顺序执行以下各节中讨论的任务:

开始varnish 

输入 service varnish start

如果Varnish无法作为服务启动,请按如下所示从命令行启动它:

       启动Varnish CLI:

varnishd -d -f /etc/varnish/default.vcl

      启动Varnish子进程:

      出现提示时,输入 start

      显示以下消息以确认成功启动:

      child (29805) Started

      200 0

       Child (29805) said

       Child (29805) said Child starts

检测Varnish网络

netstat

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

netstat -tulpn|grep varnishd

netstat -tulpn|grep httpd

特别查找以下输出:

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      32614/varnishd

tcp        0      0 127.0.0.1:58484             0.0.0.0:*                   LISTEN      32604/varnishd

tcp        0      0 :::8080                     :::*                        LISTEN      26822/httpd

tcp        0      0 ::1:48509                   :::*                        LISTEN      32604/varnishd

上图显示了在端口80上运行的Varnish和在端口8080上运行的Apache。

如果看不到的输出varnishd,请确保Varnish正在运行。


5、配置Magento支持varnish

store->setting->configuration->advanced->system->full page cache->caching application->varnish


提示:保存后可导出配置!

varnish备份

cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak2

Magento规则替换varnish规则

cp <download_directory>/default.vcl /etc/varnish/default.vcl

重启varnish

systemctl daemon-reload
service varnish restart

验证是否全页缓存成功

rm -rf <magento_root>/var/page_cache/*

检查浏览器doc的加载时间一般几毫秒,以及缓存目录是否还会生成全页缓存,如果没有生成,那么成功!

原创