Hey guys a first & late joining to the list.

I'd like to have a src / IP based sticky rule that uses one or two
combinations of query-string / get-parameters to determine stickiness.

One (1x) query-string is specifically for session/user id's (UID) and the
second (2x) to allow for specific targeting of a server thats in the
concerned backend (SID).

By default a leastconn balance algorithm should stick users to a server in
a Backend group where no UID or SID are specified. Where both UID & SID are
specified then the existing Stick entry should be overwritten with
precedence toward SID for the given UID and where only `UID` is specified
then any existing / prior entries should be used or the leasconn server
designated for the request.

In short the idea is to stick and keep user to first assigned server unless
there are UID and or SID additions which should be respected

I have the following two confs which I was experimenting toward a near
solution:

#//--------------------------------
#//- EXAMPLE 1 - leastconn
#//--------------------------------
backend STICKY_HAP
 stick-table type ip size 20k
 stick on src
 stick on urlp(UID)
 balance leastconn
 use-server S1.my.io if { urlp(SID) 1 }
 use-server S2.my.io if { urlp(SID) 2 }
 use-server S3.my.io if { urlp(SID) 3 }
 server S1.my.io 127.0.0.1:58810 check
 server S2.my.io 127.0.0.1:58811 check
 server S3.my.io 127.0.0.1:58812 check
#//--------------------------------

#//--------------------------------
#//- EXAMPLE 2 - url_param
#//--------------------------------
backend STICKY_HAP
 stick-table type string len 64 size 1m
 stick on src
 stick on urlp(UID)
 balance url_param UID
 use-server S1.my.io if { urlp(SID) 1 }
 use-server S2.my.io if { urlp(SID) 2 }
 use-server S3.my.io if { urlp(SID) 3 }
 server S1.my.io 127.0.0.1:58810 check
 server S2.my.io 127.0.0.1:58811 check
 server S3.my.io 127.0.0.1:58812 check
#//--------------------------------

I've also tried other settings such as:
#//--------------------------------
appsession UID len 64 timeout 3h request-learn query-string
appsession SID len 64 timeout 3h request-learn query-string
#//--------------------------------
But without much luck.

Thanks very much in advanced.

Reply via email to