BIG-IP自身をSorryサーバとして利用する


BIG-IPには、profileのfailbackホストを設定することで
poolダウン時にリダイレクトすることができますが、
今回は、BIG-IP自身にコンテンツを配置し、全MEMBERダウン時にそのコンテンツを表示させます。 

Webサーバ自身に、SSL証明書を設定している場合には、この方法は利用できません。

BIG-IPにSSHでログインします。

Sorryページ用コンテンツを作成します。

#cd /var/class/
#vi maint.index.html.class

日本語は文字参照形式に変換する必要があるため、
コンテンツの中身はこのように記述します。1行で記述してください。 

“1” := “<HTML><HEAD><TITLE>&#12513;&#12531;&#12486;&#12490;&#12531;&#12473;&#20013;</TITLE></HEAD><BODY><H2>&#12513;&#12531;&#12486;&#12490;&#12531;&#12473;&#20013;&#12391;&#12377;&#12539;&#12539;&#12539;</BODY></HTML>”, 


 日本語を文字参照形式に変換するには、下記のサイトが便利です
 http://www.benricho.org/moji_conv/15.html

 続いて、bigip.confにclass定義を追記します。

 

サーバ負荷分散入門
サーバ負荷分散入門

posted with amazlet at 13.01.18
みやた ひろし
ソフトバンククリエイティブ
売り上げランキング: 47,437


bigip.confに下記の内容を追記し保存します。

class maint_index_html {
   type string
   filename “/var/class/maint.index.html.class”
   separator “:=”

   }


 次に、iruleを記載します。
iruleについては、こちらのサイトを参考にさせていただきました。
pool名は環境にあわせて、修正してください。

when RULE_INIT {
    log local0. “Init”
    log local0. “init2”
    set static::maint_prefix “/maintenancepage”
    set static::maint_len [string length $static::maint_prefix]
}


when HTTP_REQUEST {
    log local0. “Request start [HTTP::uri]”
    log local0. “Request continue”
    set uri [HTTP::uri]
    log local0. “URI [HTTP::uri]”
    log local0. “main_prefix = $static::maint_prefix”
    if { $uri equals $static::maint_prefix } {
       HTTP::respond 301 “Location $static::maint_prefix”
       return
    }
    if { $uri starts_with $static::maint_prefix } {
       set uri [string range $uri $static::maint_len end]
       log local0. “here”
       switch $uri {
         “/”              –
         “/index.html”   { HTTP::respond 200 content [class match -value 1 equals maint_index_html] “Content-Type” “text/html” }
         default         { HTTP::respond 404 }
       }
       return
    }
    if { [active_members http_pool] < 1 } {
      HTTP::redirect “$static::maint_prefix/index.html”
      return
    }
  }

作成したiruleをVirtualServerに適用します。
[Virtual Servers]→[該当VS]→[Resources]
iRules右にある、[Manage]をクリックし、作成したiRuleを適用してください。

これで、pool memberが全ダウンした場合に、BIG-IP上に配置されたコンテンツが表示されるようになります。

 

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次