Backend definition in multiple VCL files in Varnish 5

Kurt Sultana kurtanatlus at gmail.com
Sat May 6 21:40:01 CEST 2017


Ideas anyone? Any help is appreciated.

Thanks

On 4 May 2017 2:33 p.m., "Kurt Sultana" <kurtanatlus at gmail.com> wrote:

> Hi all,
>
> 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).
>
> 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.
>
> To keep things very simple for now, I'm going to use 1 backend server in
> my example.
>
> So, I have a magento.vcl defined as follows:
>
> *vcl 4.0;*
>
> *import std;*
>
> *# The minimal Varnish version is 4.0*
> *# For SSL offloading, pass the following header in your proxy server or
> load balancer: 'X-Forwarded-Proto: https'*
>
> *backend default {*
> *    .host = "127.0.0.1";*
> *    .port = "8088";*
> *}*
>
> *include "/etc/varnish/common.vcl";*
>
> And a top.vcl
>
> *vcl 4.0;*
>
> *import std;*
>
> *backend default { .host = "127.0.0.1"; }*
>
> *sub vcl_recv {*
> *    if (req.http.host == "magento2.dev") {*
> *        return (vcl(magento_vcl));*
> *    }*
> *}*
>
> Then I run
>
> *service varnish restart*
>
> *varnishadm*
>
> *vcl.load magento /etc/varnish/conf.d/magento.vc <http://magento.vc>l*
>
> *vcl.label magento_vcl magento *
>
> *vcl.load top /etc/varnish/top.vcl*
>
> *vcl.use top*
>
> *quit*
>
> 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:
>
> *vcl 4.0;*
>
> *import std;*
>
> *# The minimal Varnish version is 4.0*
> *# For SSL offloading, pass the following header in your proxy server or
> load balancer: 'X-Forwarded-Proto: https'*
>
> *backend magento {*
> *    .host = "127.0.0.1";*
> *    .port = "8088";*
> *}*
>
> *sub vcl_recv {    set req.backend_hint = magento;}*
>
> *include "/etc/varnish/common.vcl";*
>
> 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?
>
> Thanks in advance,
> Kurt
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20170506/5aab27a4/attachment.html>


More information about the varnish-misc mailing list