Forum Discussion
URL and IP check iRule
- Dec 04, 2016
when HTTP_REQUEST { switch -glob [HTTP::path] { "*/g2b*" { pool G2B_Pool } "*/portal/g2c*" { pool G2C_Pool } "*/_layout/15*" { if { [IP::client_addr] matches_glob "10.10.10.1\[01\]" } { pool G2B_Pool } } } }
I removed the CLIENT_ACCEPTED code because, unless poolDefault is actually utilized elsewhere. I also removed the default branch (the else clause in the original code). If the pool associated with the Virtual Server is already set to B2B_Pool, then the default branch is redundant. Finally, I removed the string tolower for the path. Whether it makes sense depends on the path semantics for the webserver. See the Analysis section in this recipe for more details:
It sounds to me like you want to use persistence. Let's say that a client goes to /_layout/15 and the client IP is 10.10.10.10. Given the code above, pool G2B_Pool is selected. On a subsequent request from the same client, assuming some arbitrarily different Request Target, the default pool would be used. If you wish for this client to again use the same pool member selected in G2B_Pool, a persistence profile would accomplish this. For HTTP transactions, in general, Cookie Persistence makes the most sense.
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com