Forum Discussion
I had a similar need and solved it with a slightly different solution.
Developers need to update a set of web servers that are in a pool but want to perform a final test before making it available to production. Typically we take pool members offline for maintenance by lowering their priority so that requests won't go to them (they go to the higher priority pool members and as long as there are members available at a higher priority, load balancing will select them).
There is also persistence (in our case cookie, but I don't think it matters) on the virtual server. That made the solution fairly straightforward.
The tester who wants to verify one of these 'offline' members can select that specific member and then persistence will retain that member for the duration of their browser session (until they close their browser).
The selection is made via a specific URI from the browser by specifying the IP address of the member at the end of the string ( hostname/path/F5/select/IPaddress_of_member ).
when LB_SELECTED {
if {[URI::decode [HTTP::uri]] contains "/F5/select/"} {
LB::reselect pool [LB::server pool] member [string range [HTTP::uri] [expr [string last / [HTTP::uri]] +1] end]
}
}