ロードバランサ(BIGIP)をWEBサーバーにしてしまう方法

簡単に言うと、BIGIPだけでWEBサーバーを作ることができるなぁって話です。

DBを使うような難しいことはできませんが、ホームページ等の静的コンテンツのサイトならWEBサーバーを別途用意しなくても実現できちゃいます。

BIGIPってお高いので、小規模なシステムではあまり使われていませんが、大規模なシステムでは利用されることが多いですね。

今回は中規模のシステムで活用されているBIGIPで、余っている資源を有効に使おうって話です。

iRuleは以下のみです。非常に短いコードになります。

when HTTP_REQUEST {
    if { [class match [HTTP::path] ends_with contents] } {
      set ::content_name [lindex [split [HTTP::path] /] end]
      HTTP::respond 200 content [ifile get $::content_name] "Content-Type" [class match -value $::content_name equals contents]
    } else {
      HTTP::respond 404
    }

}

なぜ、こんなに短いコードになるかといいますと、DataGroupという機能を使っているからです。

DataGroup(この例では、contentsという名前で登録しています。)にコンテンツ名をキーに、値をコンテンツタイプにして利用するコンテンツをすべて登録しておきます。

そして、iFileにすべてのコンテンツを登録しておきます。

 

あとは、VirtualServerを作り、上記のiRuleを登録するだけで、BIGIPはWEBサーバーになります。

<参考>

DataGroupの登録方法

  GUI管理画面 > Local Traffic > iRules > Data Group List > Add

iFileで利用するコンテンツのアップロード方法

  GUI管理画面 > System > File Management > iFile List > Import

iFileの登録方法

  GUI管理画面 > Local Traffic > iRules > iFile List > Add