Denis_9818
Oct 06, 2010Nimbostratus
Persistance question
Hi,
I have a virtual server for which I have the following persistance configuration:
- default cookie profile assigned to the virtual
- an iRule that uses universal persistance for requests with certain URI::query parameters. Here is the iRule:
when HTTP_REQUEST {
set log_prefix "[IP::client_addr]:[TCP::client_port]"
Check if query string parameter named ticket has a value
set alf_sess [string tolower [URI::query "?&[HTTP::query]" "&alf_ticket"]]
set alfsess [ string tolower [URI::query "?&[HTTP::query]" "&ticket"]]
if { $alf_sess ne "" }{
Persist off of the ticket value
persist uie $alf_sess
}
if { $alfsess ne "" }{
persist uie $alfsess
}
}
when HTTP_RESPONSE {
Check if there is an alfticket cookie in the response
if {[HTTP::cookie "alfticket"] ne ""} {
Persist off of the cookie value with a timeout of 1 hour (3600 seconds)
persist add uie [string tolower [HTTP::cookie "alfticket"]] 3600
log local0. "$log_prefix: Added persistence record from cookie:[string tolower [HTTP::cookie "alfticket"]]"
}
}
My question is, since I do not use the above iRule in a universal persistance profile, which in turn would be applied to the virtual, just applying the iRule as a resource, will that have the expected behavior? From F5 support documents, they present only instances when a universal persistance profile is created and applied to the virtual. In my case, I need to persist both, client to server communication and server to server communication (which doesn't send the HTTP cookie headers all the time but they include the ticket as a query parameter). For client to server I use the default cookie persistance and for server to server I use the above iRule - any possible conflicts here? Will the universal persistence through the iRule work as expected? From my tests, things look OK, but I just want to run it by the community for validation.
Thanks,
Denis