Hi,
I use following irule to manage maintenance page per pool.
with this rule, pool can be assigned by a irule executed before or by an LTM Policy.
when HTTP_REQUEST {
switch [HTTP::path] {
"/maintenance/logo.png" {
HTTP::respond 200 content [ifile get "logo.png"] "Content-Type" "image/png"
return
}
"/maintenance/maintenance.html" {
HTTP::respond 200 content [ifile get "maintenance.html"] "Content-Type" "text/html"
return
}
"/maintenance/error.html" {
HTTP::respond 200 content [ifile get "error.html"] "Content-Type" "text/html"
return
}
default {
set dpool [LB::server pool]
if { $dpool equals "" } { HTTP::redirect "/maintenance/error.html" ; unset dpool; return}
if { [active_members $dpool] == 0 } { HTTP::redirect "/maintenance/maintenance.html"; unset dpool; return}
unset dpool
}
}
}
when HTTP_RESPONSE {
if { [HTTP::status] eq "404" } { HTTP::redirect "/maintenance/error.html" }
}