Upgrading from v3 to v5 - XFF and client.identity

Guillaume Quintard guillaume at varnish-software.com
Wed Mar 29 09:15:49 CEST 2017


Mark, to avoid conditionnal, you can avoid vmod-stendahl:
https://github.com/gquintard/libvmod-stendhal, the std.rand() part can just
use the random director.

But, as I said, for this one, I'd go with the hash director and just use
the client.ip, since you don't care about the actual session.

-- 
Guillaume Quintard

On Wed, Mar 29, 2017 at 12:01 AM, Mark Hanford <mark at hanfordonline.co.uk>
wrote:

> (Resending because I forgot to reply to the list earlier...)
>
> But what's wrong with using the client IP? These solutions using cookies
> are a little dirty, regardless of the blog title.
>
> This bit for example, is completely unworkable:
>
> if (req.http.server == "s1") {
>         set req.backend_hint = s1;
>     } else if (req.http.server == "s2") {
>         set req.backend_hint = s2;
>     } else {
>         if (std.rand(0, 100) < 50) {
>             req.backend_hint = s1;
>         } else {
>             req.backend_hint = s2;
>         }
>     }
>
> Because we have at least 15 backends configured in 5 different Director
> pools, I'd end up having to build an enormous set of conditionals to work
> out which backend to use.
>
> Why is _this_ the preferred solution over determining the client IP and
> selecting a backend based on that?
>
> thanks,
>
> Mark
>
>
> On 28 Mar 2017 2:11 pm, "Andrei" <lagged at gmail.com> wrote:
>
>> Oh yeah, Guillaume also has a great post on it @
>> https://info.varnish-software.com/blog/sticky-session-with-cookies :D
>>
>> On Tue, Mar 28, 2017 at 6:28 AM, Andrei <lagged at gmail.com> wrote:
>>
>>> Hi Mark,
>>>
>>> I suggest going over the following blog post for the changes you're
>>> looking for. Good luck moving forward :D
>>>
>>> https://info.varnish-software.com/blog/proper-sticky-session
>>> -load-balancing-varnish
>>>
>>>
>>> On Tue, Mar 28, 2017 at 4:52 AM, Mark Hanford <mark at hanfordonline.co.uk>
>>> wrote:
>>>
>>>> Hi folks. I'm in the process of trying to upgrade our current v3 config
>>>> to v4+ for upgrading to Varnish 5.
>>>>
>>>> In my old v3 config, I use the XFF header to change the client.identity
>>>> if it is present.
>>>>
>>>>     # For session-persistence, set a client identity.
>>>>     # We're using the client's IP for this to ensure server-persistence.
>>>>     if (req.http.X-Forwarded-For) {
>>>>         set client.identity = req.http.X-Forwarded-For;
>>>>     } else {
>>>>         set client.identity = client.ip;
>>>>     }
>>>>
>>>> It is important that a request from one remote client goes to the same
>>>> backend every time, when possible. Do I still need to deal with this, or
>>>> will this be handled transparently in some way?
>>>>
>>>> I suspect I'll have more questions as I go along, so I apologise in
>>>> advance for the spam :)
>>>>
>>>> thanks,
>>>>
>>>> Mark
>>>>
>>>> _______________________________________________
>>>> varnish-misc mailing list
>>>> varnish-misc at varnish-cache.org
>>>> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>>>>
>>>
>>>
>>
> _______________________________________________
> 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/20170329/65fad5cf/attachment-0001.html>


More information about the varnish-misc mailing list