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.
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