Mailing List Archive

Backend definition in multiple VCL files in Varnish 5
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.vcl*

*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
Re: Backend definition in multiple VCL files in Varnish 5 [ In reply to ]
Ideas anyone? Any help is appreciated.

Thanks

On 4 May 2017 2:33 p.m., "Kurt Sultana" <kurtanatlus@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
>
>
>
Re: Backend definition in multiple VCL files in Varnish 5 [ In reply to ]
You might try Stack Overflow if you're not having any luck on this list.
There are a few folks who answer Varnish questions on there. Just tag it
"varnish" and "varnish-vcl".

Nigel

On 06/05/2017 14:40, Kurt Sultana wrote:
> Ideas anyone? Any help is appreciated.
>
> Thanks
>
> On 4 May 2017 2:33 p.m., "Kurt Sultana" <kurtanatlus@gmail.com
> <mailto:kurtanatlus@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
>
>
>
>
> _______________________________________________
> varnish-misc mailing list
> varnish-misc@varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>

_______________________________________________
varnish-misc mailing list
varnish-misc@varnish-cache.org
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
Re: Backend definition in multiple VCL files in Varnish 5 [ In reply to ]
Can you provide a varnishlog of the request where you get the backend
errors?

--
Reza Naghibi
Varnish Software

On Sat, May 6, 2017 at 3:45 PM, Nigel Peck <np.lists@sharphosting.uk> wrote:

>
> You might try Stack Overflow if you're not having any luck on this list.
> There are a few folks who answer Varnish questions on there. Just tag it
> "varnish" and "varnish-vcl".
>
> Nigel
>
> On 06/05/2017 14:40, Kurt Sultana wrote:
>
>> Ideas anyone? Any help is appreciated.
>>
>> Thanks
>>
>> On 4 May 2017 2:33 p.m., "Kurt Sultana" <kurtanatlus@gmail.com <mailto:
>> kurtanatlus@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
>>
>>
>>
>>
>> _______________________________________________
>> varnish-misc mailing list
>> varnish-misc@varnish-cache.org
>> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>>
>>
> _______________________________________________
> varnish-misc mailing list
> varnish-misc@varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>