F5 BIG-IPでノードが死んだときにsorryサーバにiruleで飛ばす

F5

httpのプロファイルでsorryに飛ばす方法はあるけど、いろんなサーバで使いまわしてるプロファイルなのでiruleでできないか試してみた。設定は簡単で、後述のiruleファイルをVirtualServerに適用するだけ。

設定の前に

・sorryサーバ側で表示するページがどのサーバへのアクセスでも同じ内容のものでよければ、サーバのvirtualhostは一つでもいい。(というか数百URLへの対応なので、これ以外嫌って拒否った)
・リダイレクトじゃなくて別のpoolに飛ばすのを選んだのは、顧客のURL表示を変えたくなかったから。

iruleの内容

when HTTP_REQUEST {
  if {[active_members [LB::server pool]] < 1 } {
    pool sorry.piteki.com-http
  }
}

終わりに

今回この設定をしててオモシロイこと(?)に気づいた。VirtualServerは割り当ててるPoolのメンバーが全て死んだとき、「Offline」(赤色のひし形)になるが、iruleの中で参照しているpoolが生きている場合には「Offiline」にはならず、「Available」(緑色のマル)のままだった。ぱっと見でステータス状態がVirtualServerではわからないので、この仕様はどうなのかなーっていう気はしたが、まぁ考えても仕方ない。仕様なのだから。

コメント

タイトルとURLをコピーしました