在 Plesk 服务器上为 Magento 2 安装 Varnish Cache
Installing Varnish Cache for Magento 2 on Plesk Server
我们安装了 magento 2.4,我们有兴趣为我们的网站安装清漆缓存
我们正在使用 Plesk (Plesk Obsidian 18.0.37),所以我们发现遵循 this guide:
但是使用 magento 的 varnish v6 导出 .vcl 配置,这些语句不同
我们选择的 varnish 版本是 6.4.0-1
...
backend default {
.host = <plesk's and site's ip>
.port = "7080";
...
}
acl purge {
"localhost";
"<plesks's and site's ip>;
}
...
安装看起来成功,但每次我们尝试连接我们的演示子域时都会收到此错误
Error 503 Backend fetch failed
我们尝试用 localhost 替换后端默认的 ip 以及 plesk 面板中的各种不同配置,但似乎没有任何改变
使用 varnishlog -g raw -i backend_health
挖掘 varnish 的日志
此错误不断弹出:
0 Backend_health - default Still sick -------- 0 5 10 0.000000 0.000000 "Open error 110 (Connection timed out)"
...将本地主机用作 .host
此错误不断弹出:
0 Backend_health - default Still sick -------- 4 5 10 0.000000 0.000000 "Open error 101 (Network is unreachable)"
.. 最后使用 127.0.0.1 作为 .host
而不是 localhost:
acl purge {
"localhost";
"127.0.0.1";
"<plesks's and site's ip>;
}
并得到了这个:
0 Backend_health - default Still sick -------- 4 5 10 0.000000 0.000000 "Open error 111 (Connection refused)"
这没有多大意义
我们猜测这可能是防火墙问题,所以我们暂时尝试在 plesk 的防火墙内添加一条规则:
允许所有端口上来自 ,127.0.0.1 的传入
但所有三种配置都没有改变
所以这与防火墙问题有关吗?还是配置错误?
提前致谢!
明显是防火墙的问题!
使用 localhost
或 127.0.0.1
进行 varnish 配置没有多大意义,因为从 docker 容器的虚拟环境的角度来看,没有安装监听端口 7080 的 apache 服务器,但是在主机上。
所以 docker 无法使用本地主机访问主机的 apache。
将 docker 清漆的来源列入白名单,(docker 的网络接口)来自防火墙解决了这个问题。
将 docker 的网络 IP 地址列入白名单后(包括位掩码符号 (/16) 用于 apache 侦听的端口 7080) ) plesk 的防火墙扩展一切正常!
网站现在使用 varnish 速度更快,如果您在 plesk 遇到与 docker 和 varnish 相同的问题,希望这能给您提示。
我们安装了 magento 2.4,我们有兴趣为我们的网站安装清漆缓存
我们正在使用 Plesk (Plesk Obsidian 18.0.37),所以我们发现遵循 this guide:
但是使用 magento 的 varnish v6 导出 .vcl 配置,这些语句不同
我们选择的 varnish 版本是 6.4.0-1
...
backend default {
.host = <plesk's and site's ip>
.port = "7080";
...
}
acl purge {
"localhost";
"<plesks's and site's ip>;
}
...
安装看起来成功,但每次我们尝试连接我们的演示子域时都会收到此错误
Error 503 Backend fetch failed
我们尝试用 localhost 替换后端默认的 ip 以及 plesk 面板中的各种不同配置,但似乎没有任何改变
使用 varnishlog -g raw -i backend_health
此错误不断弹出:
0 Backend_health - default Still sick -------- 0 5 10 0.000000 0.000000 "Open error 110 (Connection timed out)"
...将本地主机用作 .host
此错误不断弹出:
0 Backend_health - default Still sick -------- 4 5 10 0.000000 0.000000 "Open error 101 (Network is unreachable)"
.. 最后使用 127.0.0.1 作为 .host
而不是 localhost:
acl purge {
"localhost";
"127.0.0.1";
"<plesks's and site's ip>;
}
并得到了这个:
0 Backend_health - default Still sick -------- 4 5 10 0.000000 0.000000 "Open error 111 (Connection refused)"
这没有多大意义
我们猜测这可能是防火墙问题,所以我们暂时尝试在 plesk 的防火墙内添加一条规则:
允许所有端口上来自
但所有三种配置都没有改变
所以这与防火墙问题有关吗?还是配置错误?
提前致谢!
明显是防火墙的问题!
使用 localhost
或 127.0.0.1
进行 varnish 配置没有多大意义,因为从 docker 容器的虚拟环境的角度来看,没有安装监听端口 7080 的 apache 服务器,但是在主机上。
所以 docker 无法使用本地主机访问主机的 apache。
将 docker 清漆的来源列入白名单,(docker 的网络接口)来自防火墙解决了这个问题。
将 docker 的网络 IP 地址列入白名单后(包括位掩码符号 (
网站现在使用 varnish 速度更快,如果您在 plesk 遇到与 docker 和 varnish 相同的问题,希望这能给您提示。