Reg: backend 'name' in VCL before going to origin

Guillaume Quintard guillaume at varnish-software.com
Thu May 30 17:18:24 UTC 2019


Why not share it? I might be missing something.
-- 
Guillaume Quintard


On Thu, May 30, 2019 at 10:10 AM Hardik <hetardik.p at gmail.com> wrote:

> Hi Guillaume
>
> Ok..!
>
> Today I saw one VCL where it was resolving actual backend from director in
> miss/pass function. I have not tried it.  Will let you know how it goes..
>
> Thank you
> Hardik
>
> On Thu, 30 May 2019, 22:23 Guillaume Quintard, <
> guillaume at varnish-software.com> wrote:
>
>> Hi,
>>
>> Getting the resolved backend in v_b_f won't be possible until
>> https://github.com/varnishcache/varnish-cache/pull/2680 gets merge. In
>> the meantime (unless you write the vmod for it), there's no way to
>> pre-resolve the director.
>>
>> --
>> Guillaume Quintard
>>
>>
>> On Wed, May 29, 2019 at 6:26 PM Hardik <hetardik.p at gmail.com> wrote:
>>
>>> Thanks Guillaume.
>>>
>>> I am already using bereq.backend in v_b_f which is giving director
>>> name.  As you have pointed out,  I want 'exact' backend name inside
>>> director.  Also before sending to origin because want to set few  headers
>>> for origin as per exact backend.
>>>
>>> On Thu, 30 May 2019, 04:20 Guillaume Quintard, <
>>> guillaume at varnish-software.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> man vcl is your friend. I believe what you want is "bereq.backend"
>>>>
>>>> Also, you could just write: std.log("using backend: " + bereq.backend)
>>>>
>>>> note that bereq.backend will return the unresolved backend, meaning
>>>> that if backends are inside a director, you'll get the name of the
>>>> director, since the backend choice happens between v_b_f and v_b_r. To know
>>>> what exact backend was used, you have to check in v_b_r.
>>>>
>>>> cheers,
>>>> --
>>>> Guillaume Quintard
>>>>
>>>>
>>>> On Wed, May 29, 2019 at 4:56 AM Hardik <hetardik.p at gmail.com> wrote:
>>>>
>>>>> Hi Team,
>>>>>
>>>>> Requirement : *to set few headers based on backend origin ( having
>>>>> multiple origins/backends in single director)*.
>>>>>
>>>>> I want to do similar to this.
>>>>> https://stackoverflow.com/questions/43357690/varnish-vcl-how-can-i-switch-on-req-backend-hint
>>>>>
>>>>> sub vcl_backend_fetch {
>>>>>     if (bereq.backend.name == "one") {
>>>>>        std.log("one");
>>>>>     } else if (bereq.backend.name == "two") {
>>>>>        std.log("two");
>>>>>     } else {
>>>>>        std.log("neither one");
>>>>>     }
>>>>> }
>>>>>
>>>>>
>>>>> I am trying to do same (inside b_fetch) but getting error that symbol
>>>>> not found. I am using varnish 6.1.
>>>>> Is this different function call/name for varnish 6.1 ?
>>>>>
>>>>> Thank you
>>>>> Hardik
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> varnish-misc mailing list
>>>>> varnish-misc at varnish-cache.org
>>>>> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>>>>>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20190530/9f4d42b9/attachment.html>


More information about the varnish-misc mailing list