Forum Discussion
Need help with iRule based on host and path
- Jul 11, 2024
Finally, problem solved! The reason was the order of execution for the 2 scripts. I donot really understand why this happens but when I placed the script in second place, everything is executed as expected. If you have any ideas please let me know.
The problematic order which doesnot work is shown below:
First script:
when HTTP_REQUEST {
if { [HTTP::host] equals "hostname_a"} {
if { [HTTP::path] equals "/path" } {pool pool_a
log local0. "URL : [HTTP::host][HTTP::uri] entered"
}
}
if { [HTTP::host] equals "hostname_b"} {
if { [HTTP::path] equals "/path" } {pool pool_b
log local0. "URL : [HTTP::host][HTTP::uri] entered"
}
}
}Second script:
when HTTP_REQUEST {
if {[HTTP::has_responded]}{return}
switch -glob [string tolower [HTTP::path]]
{....
....
}
default
{
switch [string tolower [HTTP::host]]
{"hostname_a"
{
pool pool_c
persist none}
....
.....
default
{
pool_z
}
......
Anyway, thank you all very much for your time.
And if you captured the traffic with tcpdump and test the iRule, you see the LB correctly?
I remember a scenario with the same issue, the pool dont show the stats, but the LB its working.
if was the case, open a ticket to support for more detail
Thank you.. I tried with tcpdump -nnvvi but cannot see any request going to the pool specified. I can see only health checking.
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