Application Delivery (ADX)

URL Hashing: Enable persistence based on unique strings in the URL

by on ‎05-09-2009 10:42 AM (207 Views)

Summary

Some of our incoming HTTP requests have a string “UniqueID”, followed by a  unique string. We want to load balance the requests such that all requests with  the same Unique ID goes to the same server. i.e persist based on URL segment


GET /index.html?UniqueID=12345678 HTTP/1.0


Any request which does not have this value in its URL request should be load  balanced to a default group of servers.

Specifics

We will use csw persist and hash-to-bucket mechanism to achieve this objective.First we will search the URL for the particular string, in this case UniqueID,  and then, will hash the value following the string and send it to a server. Same values following the string will always result in same hash value and  will be sent to the same server.

Sample Code/Configuration

csw-rule r1 url search "UniqueID="

csw-policy p1

match r1 persist offset 0 length 8 hash-to-bucket

default forward 1


server real RS1 172.16.10.126

port 8080

port 8080 group-id 1 1

!

server real RS2 172.16.10.125

port 8080

port 8080 group-id 1 1


server virtual VIP1 172.16.0.31

predictor round-robin

port http

port http csw-policy p1

port http csw

bind http RS1 8080 RS2 808