配置Magento 2以在CentOS 7上使用Varnish

linux

页面速度或加载时间对于在线商店的成功至关重要。加载时间是特定页面上的内容加载所花费的总时间。加载时间越长,转换率越低。这也是Google考虑确定搜索引擎排名的最重要因素之一。

在第一篇文章中,我们在CentOS 7机器上安装了Magento 2。在本系列 的第二篇文章中,我们将介绍安装和配置Varnish以使我们的Magento商店超级快。

先决条件

请确保您已遵循第一篇文章中的说明,并且启用了EPEL存储库。

运作方式

Varnish不支持SSL,因此我们需要使用其他服务作为SSL终止代理,在本例中为 Nginx 。

当访问者通过端口443上的HTTPSHTTPS上打开您的网站时,该请求将由Nginx处理,该代理将作为代理并将请求传递给Varnish(在端口80上)。 Varnish检查是否缓存了请求。如果已缓存,Varnish会将缓存的数据返回给Nginx,而无需请求Magento应用程序。如果未缓存请求,Varnish会将请求传递到端口8080上的Nginx,该端口将从Magento中提取数据,而Varnish将缓存响应。

如果访问者在端口80上没有SSL的情况下打开您的网站,那么Varnish会将其重定向到端口443 URL上的HTTPS

配置Nginx

我们需要编辑我们在第一篇文章中创建的 Nginx服务器块,以处理SSL / TLS终止并作为Varnish的后端。

/etc/nginx/conf.d/example.com.conf

upstream fastcgi_backend {

server unix:/run/php-fpm/magento.sock;

}

server {

listen 127.0.0.1:8080;

server_name example.com www.example.com;

set $MAGE_ROOT /opt/magento/public_html;

set $MAGE_MODE developer; # or production

include snippets/letsencrypt.conf;

include /opt/magento/public_html/nginx.conf.sample;

}

server {

listen 443 ssl http2;

server_name www.example.com;

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

include snippets/ssl.conf;

return 301 https://example.com$request_uri;

}

server {

listen 443 ssl http2;

server_name example.com;

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

include snippets/ssl.conf;

access_log /var/log/nginx/example.com-access.log;

error_log /var/log/nginx/example.com-error.log;

location / {

proxy_pass http://127.0.0.1;

proxy_set_header Host $http_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 X-Forwarded-Proto https;

proxy_set_header X-Forwarded-Port 443;

}

}

我们还需要从nginx.conf文件中删除默认的Nginx服务器块。评论或删除以下几行:

/etc/nginx/nginx.conf

...

# server {

# listen 80 default_server;

# listen [::]:80 default_server;

# server_name _;

# root /usr/share/nginx/html;

#

# # Load configuration files for the default server block.

# include /etc/nginx/default.d/*.conf;

#

# location / {

# }

#

# error_page 404 /404.html;

# location = /40x.html {

# }

#

# error_page 500 502 503 504 /50x.html;

# location = /50x.html {

# }

# }

...

重新加载Nginx 服务以使更改生效:

sudo systemctl reload nginx

安装和配置Varnish

Varnish是一种快速的反向代理HTTP加速器,它位于我们的Web服务器之前,它将用作Magento安装的Full Page Cache解决方案。

使用以下命令通过yum安装Varnish:

sudo yum install varnish

将Magento配置为使用Varnish运行:

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

接下来,我们需要生成一个Varnish配置文件:

sudo php /opt/magento/public_html/bin/magento varnish:vcl:generate > /etc/varnish/default.vcl

上面的命令需要以 sudo权限的root用户或用户身份运行,它将使用默认值localhost作为后端主机和端口8080作为后端端口。

默认配置附带健康检查文件的错误URL。打开default.vcl文件,然后从以黄色突出显示的行中删除/pub部分:

/etc/varnish/default.vcl

...

.probe = {

# .url = "/pub/health_check.php";

.url = "/health_check.php";

.timeout = 2s;

.interval = 5s;

.window = 10;

.threshold = 5;

}

...

默认情况下,Varnish侦听端口6081,我们需要将其更改为80

/etc/varnish/varnish.params

VARNISH_LISTEN_PORT=80

完成修改后,启动并启用Varnish服务:

sudo systemctl enable varnish

sudo systemctl start varnish

您可以使用varnishlog工具查看实时Web请求并调试Varnish。

结论

在本教程中,我们向您展示了如何通过将Varnish实现为全页缓存来加快Magento实例的速度。

如果遇到任何问题,请在下面发表评论。

此职位是 如何在CentOS 7  系列上安装和配置Magento 2的一部分。该系列中的其他职位:  

• 在CentOS 7上安装Magento 2

•将Magento 2配置为在CentOS 7上使用Varnish

以上是 配置Magento 2以在CentOS 7上使用Varnish 的全部内容, 来源链接: utcz.com/z/507100.html

回到顶部