我在同一个域下有多个 Magento 2 实例。例如,www.mydomain.com/magento1 和 www.mydomain.com/magento2。
我正在尝试针对这些 Magento 网站设置 Varnish。但是,如果这些网站基本上使用相同的主机名,我该如何设置多个后端?所以,我发现的这个处理多个后端的示例对我来说不起作用。
backend example1 {
.host = "backend.example1.com";
.port = "8080";
}
backend example2 {
.host = "backend.example2.com";
.port = "8080";
}
提前致谢,
答案1
在 vcl_recv() 子程序中,你可以根据 URI 更改后端,例如这在 Varnish 4 中有效:
sub vcl_recv {
if (req.url ~ "^(?i)/magento1") {
set req.backend_hint = example1;
}
if (req.url ~ "^(?i)/magento2") {
set req.backend_hint = example2;
}
}
答案2
只需使用 IP 地址而不是主机名来定义后端即可。或者为这些机器使用一些内部主机名以及真实主机名。