Forum Discussion
I need help creating an IRULE that redirect if pool members are down and url ends with /VCS
- Dec 02, 2015
If no pool members are up, LB_FAILED will be triggered. It can be triggered for other reasons, but perhaps you wish to redirect any time that the traffic cannot be forwarded because of a failure? If so:
when HTTP_REQUEST { if { [HTTP::path] ends_with "/VCS" } { set vcs 1 } else { set vcs 0 } } when LB_FAILED { if { $vcs } { HTTP::redirect "http://www.site.com" } }The variable
must be set in HTTP_REQUEST because the Request Host header is not available in LB_FAILED.$vcs
something like this should do that. I'm not convinced this would be the best way to deal with the condition, but it satisfy your stated goal, I think.
if{ [string tolower [HTTP::path]] starts_with "/vcs" } {
Assume the worst
set CATASTROPHE 1
foreach { pmem } [members -list yourpool] {
scan $pmem {%[^ ] %s} ip port
if { [LB::status pool yourpool member $ip $port] eq "up" } {
set CATASTROPHE 0
}
}
if { $CATASTROPHE } {
HTTP::respond 302 Location "http://www.domain.org"
} else {
Catastrophe averted!
}
}
That's a redirect method. Another option would be just to select another backend utilizing a pool command, but that would be better handled utilizing priority groups and avoiding an iRule all together.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)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