Forum Discussion
Gideon_Chong_24
Jan 20, 2016Nimbostratus
Hi Randy,
I'm also in a similar situation as you.
The following iRule is also not working for me:
when CLIENT_ACCEPTED {
set rserver1 "xserver"
set rserver2 "yserver"
if { [IP::addr [IP::client_addr] equals a.a.a.a] } {
pool mypool member $rserver1 80
}
if { [IP::addr [IP::client_addr] equals b.b.b.b] } {
pool mypool member $rserver2 80
}
}
I will test with HTTP_REQUEST tomorrow. But what are is the difference between the 2 and why would it work with one and not with the other? Also I'm using type "standard" as virtual server.
Any suggestion is very appreciated. Thanks.
- JRahmJan 20, 2016Adminif you are matching an exact IP address you only need IP::client_addr. If you are matching a network, you need a mask with that IP::addr command. Please check the wiki page for IP::addr for examples. If strictly doing IP matching/comparison, no need to use HTTP_REQUEST. Finally, depending on how many servers you end up with, a switch would be preferable to multiple if statements. If you can give me some specifics of what you are trying to accomplish (sanitized) I can cook up a sample for you.