Varnish - 具有相同主机名的多个后端

Varnish - 具有相同主机名的多个后端

我在同一个域下有多个 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 地址而不是主机名来定义后端即可。或者为这些机器使用一些内部主机名以及真实主机名。

相关内容