In case anyone was interested, here's the final solution for versions prior to v9.1.x
when HTTP_REQUEST timing on {
set NS {172.16.1.1 172.16.1.2 172.16.1.3}
set S ""
set port "80"
if { [active_members pool_name] < 3 } {
log local0. "Hash Election disabled, one or more nodes down"
pool backup_pool_name
}
else {
foreach N $NS {
if { [md5 $N[HTTP::uri]] > $S } {
set S [md5 $N[HTTP::uri]]
set W $N
}
}
pool default_pool_name member [lindex $W 0] $port
if you would like to log the node that is selected:
log local0. "lindex is [lindex $W 0], lindex2 is $port"
}
}