13-Dec-2021 06:39
Hi,
I'm new at Irules and I need help
I'm trying to create an I rule that searches for a server name in the URI ("server1/2/3")
and match it to the IP address of the server in the pool I created
but that's doesn't work
here an example
when HTTP_REQUEST {
set uri [string tolower [HTTP::uri]]
if { $uri contains "server1" } {
node 10.10.10.10
}
elseif { $uri contains "server2" } {
node 10.10.10.11
}
else {
pool test1
}
}
Solved! Go to Solution.
15-Dec-2021 02:55
You can create pool for server1 and server2 and use all services under service port while adding node. Reference that pool in the iRule and it should work.
when HTTP_REQUEST {
set uri [string tolower [HTTP::uri]]
if { $uri contains "server1" } {
pool pool1
} elseif { $uri contains "server2" } {
pool pool2
} else {
pool test1
}
}
14-Dec-2021 13:42
Hi lior,
You must add port number for node command:
node 10.10.10.10 80
#or
node "10.10.10.11:443"
https://clouddocs.f5.com/api/irules/node.html
15-Dec-2021 02:37
Thank you Enes,
but the port number is not static
15-Dec-2021 02:55
You can create pool for server1 and server2 and use all services under service port while adding node. Reference that pool in the iRule and it should work.
when HTTP_REQUEST {
set uri [string tolower [HTTP::uri]]
if { $uri contains "server1" } {
pool pool1
} elseif { $uri contains "server2" } {
pool pool2
} else {
pool test1
}
}
18-Dec-2021 23:30
it works thank you