Forum Discussion
hooleylist
Jul 01, 2011Cirrostratus
You can create a /maintenance.html page in the application, add any content the maintenance.html page references under a /maintenance/ directory, add the maintenance server(s) to a pool named pool_apologies_http and then use this iRule:
when LB_FAILED {
log local0. "[IP::client_addr]:[TCP::client_port]: Request for [HTTP::uri] from Referer '[HTTP::header Referer]' to pool failed, [LB::server pool]"
Check if this request was not generated from the maintenance page using the HTTP referer header
if {not ([HTTP::path] contains "/maintenance_files/")}{
log local0. "[IP::client_addr]:[TCP::client_port]: Referer wasn't the maintenance page. Rewriting URI to maintenance page."
HTTP::uri "/maintenance.htm"
}
Send request to the apologies pool
LB::reselect pool pool_apologies_http
log local0. "[IP::client_addr]:[TCP::client_port]: Reselecting member from the apologies pool"
}
Aaron