Kilimanjaroはマルチキャストプロキシ(MultiCast Proxy)です。
クライアントからのリクエストを複数のサーバーに送信します。
クライアントからのリクエストはいったんキューに溜められ、裏で順に送信されます。
以下のようなことが可能です。
クライアントとアクセス対象となる本サーバーの間にKilimanjaroを配置してください。
┏━━━━━━┓ ┏━━━━━━┓ ┏━━━━━━┓ ┃Client ┃Request ┃Kilimanjaro ┃ ┃Web Server1 ┃ ┃ ┠────╂─┬────╂───→┃ ┃ ┃ ┃←───╂─│────╂────┨ ┃ ┃ ┃Response┃ ↓ ┃ ┃ ┃ ┃ ┃ ┃Enqueue_____┃ ┗━━━━━━┛ ┃ ┃ ┃───→****┃Dequeue ┏━━━━━━┓ ┃ ┃ ┃~~~~~~~~~~~~┠───→┃Web Server2 ┣━┓ ┃ ┃ ┃Log*******←╂────┨ ┃3 ┃ ┗━━━━━━┛ ┗━━━━━━┛Response┃ ┃ ┃ ┃ ┃ ┃ ┗━┳━━━━┛ ┃... ┗━━━━━━┛
Kilimanjaroの特性上、設定ファイルの<Proxy/>(後述)で1番目に記載したサーバーにはクライアントからのリクエストがそのまま送信され、レスポンスもそのまま返されます。
2番目以降に記載したサーバーにはキューに溜められたリクエストが送信され、レスポンスはログファイルに保存されます。
また、現在のKilimanjaroはOPTIONS, TRACE, GET, HEAD, POST, COPY, PROPFIND, DELETE, MOVE, PROPPATCH, MKCOL メソッドのみに対応しています。
動作中に設定ファイルを変更した場合はアプリケーションプールのリサイクルなどが必要です。
ログファイルは設定された<LogDir/>(後述)に保存されます。
1日毎に[日付].logとして新しいファイルが作成されます。
<Proxy/>(後述)で1番目に設定したサーバー以外へのアクセスログが出力されます。
ログは左から順に、日時 Kilimanjaroステータス ホスト名 動詞 パス レスポンス、です。
(ex.)
Kilimanjaro設定のルート要素。
送信先サーバーに関して設定します。
<Proxy/>は複数、最大で256個指定できます。
1つの<Proxy/>に対して1つの送信先サーバーを指定できます。
1つ目に指定するサーバーへはキューイングされずにリアルタイムに処理がスルーされます。
キューに溜めるリクエストボディの一時ファイルを保存するためのディレクトリを指定します。
"Kilimanjaro.dll"からの相対パスを指定できます。
設定するディレクトリをあらかじめ作成しておいてください。
ログファイルの出力先を設定します。
"Kilimanjaro.dll"からの相対パスを指定できます。
設定するディレクトリをあらかじめ作成しておいてください。