Application Delivery (ADX)

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

by on ‎05-09-2009 08:42 AM (266 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