<div dir="ltr">Hi all, <div><br></div><div>I'm a bit newish to Varnish though I do have some background. I have a Varnish 5 instance connected to 2 backend servers (Magento 2 applications). </div><div><br></div><div>I'm using the new Varnish 5 feature of loading multiple VCL files. My ultimate problem is during purging however I'd like to ensure things are set up correctly because documentation regarding multiple VCL files in Varnish 5 is somewhat lacking.</div><div><br></div><div>To keep things very simple for now, I'm going to use 1 backend server in my example. </div><div><br></div><div>So, I have a magento.vcl defined as follows:</div><div><br></div><div><div><b>vcl 4.0;</b></div><div><br></div><div><b>import std;</b></div><div><b><br></b></div><div><b># The minimal Varnish version is 4.0</b></div><div><b># For SSL offloading, pass the following header in your proxy server or load balancer: 'X-Forwarded-Proto: https'</b></div><div><b><br></b></div><div><b>backend default {</b></div><div><b>    .host = "127.0.0.1";</b></div><div><b>    .port = "8088";</b></div><div><b>}</b></div><div><b><br></b></div><div><b>include "/etc/varnish/common.vcl";</b></div></div><div><br></div><div>And a top.vcl</div><div><br></div><div><div><b>vcl 4.0;</b></div><div><b><br></b></div><div><b>import std;</b></div><div><b><br></b></div><div><b>backend default { .host = "127.0.0.1"; }</b></div><div><b><br></b></div><div><b>sub vcl_recv {</b></div><div><b>    if (req.http.host == "magento2.dev") {</b></div><div><b>        return (vcl(magento_vcl));</b></div><div><b>    }</b></div><div><b>}</b></div></div><div><br></div><div>Then I run</div><div><br></div><div><p lang="en-US" style="margin:0in;font-family:calibri;font-size:11pt"><b>service varnish restart</b></p><p lang="en-US" style="margin:0in;font-family:calibri;font-size:11pt"><span style="font-size:11pt"><b>varnishadm</b></span></p><p lang="en-US" style="margin:0in;font-family:calibri;font-size:11pt"><b>vcl.load magento /etc/<span class="gmail-il">varnish</span>/conf.d/magento.<wbr>vcl</b></p><p lang="en-US" style="margin:0in;font-family:calibri;font-size:11pt"><b>vcl.label magento_vcl <span style="font-size:14.6667px">magento</span><span style="font-size:14.6667px"> </span></b></p><p lang="en-US" style="margin:0in;font-family:calibri;font-size:11pt"><b>vcl.load top /etc/<span class="gmail-il">varnish</span>/top.vcl</b></p><p lang="en-US" style="margin:0in;font-family:calibri;font-size:11pt"><b>vcl.use top</b></p><p lang="en-US" style="margin:0in;font-family:calibri;font-size:11pt"><b>quit</b></p></div><div><br></div><div>When I browse to magento2.dev, I get a backend fetch error after some seconds. It's only when I go in magento.vcl and change the name of the backend and make a backend hint that it works. See below:</div><div><br></div><div><div><b>vcl 4.0;</b></div><div><br></div><div><b>import std;</b></div><div><b><br></b></div><div><b># The minimal Varnish version is 4.0</b></div><div><b># For SSL offloading, pass the following header in your proxy server or load balancer: 'X-Forwarded-Proto: https'</b></div><div><b><br></b></div><div><b>backend magento {</b></div><div><b>    .host = "127.0.0.1";</b></div><div><b>    .port = "8088";</b></div><div><b>}</b></div><div><b><br></b></div><div><b><div>sub vcl_recv {</div><div>    set req.backend_hint = magento;</div><div>}</div></b></div><div><b><br></b></div><div><b>include "/etc/varnish/common.vcl";</b></div></div><div><b><br></b></div><div>Why should I be specifying a backend hint? Shouldn't Varnish be loading a different VCL according to the host specified in top.vcl? Or is there something wrong?</div><div><br></div><div>Thanks in advance,</div><div>Kurt</div><div><br></div><div><br></div></div>