The Apache Tomcat Servlet/JSP Container

The Apache Tomcat 5.5 Servlet/JSP Container

Apache Logo

Links

User Guide

Reference

Apache Tomcat Development

The Apache Tomcat 5.5 Servlet/JSP Container

Load Balancer HOW-TO

Printer Friendly Version
print-friendly
version
目次

JK ネイティブ・コネクタを使う
Apache HTTP Server 2.x と mod_proxy を使う
balancer webapp を使う

JK 1.2.x ネイティブ・コネクタを使う
JK 1.2.x のドキュメンテーションを参照してください。
Apache HTTP Server 2.x と mod_proxy を使う
Apache HTTP Server 2.2 の mod_proxy のドキュメンテーションを参照してください。 これは HTTP と AJP のどちらのロード・バランシングもサポートしています。 この新しいバージョンの mod_proxy を Apache HTTP Server 2.0 で使うこともできますが, Apache HTTP Server 2.2 のコードとは別にして mod_proxy をコンパイルする必要があります。
balancer webapp を使う
概観

Tomcat 5.0.15 以降,balancer という名前の webapp が同梱されています。 これはルール・ベースのロード・バランサの単純な実装です。 これは高負荷環境に対して使われる他の負荷分散機構にとってかわるものとして 設計されたのではありません。 むしろ,トラフィックを複数のサーバに振り分けるための,単純で pure Java で拡張容易でお手軽な方法です。

balancer は Tomcat に同梱されていますが,Tomcat 専用というわけではなく,修正無しに他のコンテナ [訳注: たとえば Jetty ?] 上で動作します。 もしもあなたがフィルタを使ってトラフィックをリダイレクトしたいならば, balancer webapp は Servlet Specification 2.3 以降のコンテナを要求します。 もしもあなたがサーブレットを使ってトラフィックをリダイレクトしたいならば, どのサーブレット・コンテナも使えます。

サンプル・コンフィグレーション

デフォルトの balancer のインストールでは,BalancerFilter という1個のフィルタがすべてのリクエスト (url-pattern が /*) に適用されます。 このフィルタはルールを balancer 配置記述子 (web.xml ファイル) [訳注: webapps/balancer/WEB-INF/web.xml] で指定された場所 [訳注: webapps/balancer/WEB-INF/config/rules.xml] から読みます。 そのデフォルトのルールは:

  • URL に News をもったリクエストを www.cnn.com にリダイレクトする。
  • 値が paramValue である paramName という名前のパラメタをもったリクエストを www.yahoo.com にリダイレクトする。
  • それ以外のリクエストをすべて jakarta.apache.org にリダイレクトする。

ですから,あなたが tomcat をインストールしてスタートさせ,ブラウザに http://localhost:8080/balancer を指示すると,あなたは http://jakarta.apache.org へとリダイレクトされることになります。 ブラウザに http://localhost:8080/balancer/News を指示すると http://www.cnn.com へリダイレクトされます。 http://localhost:8080/balancer/BlahBlah?paramName=paramValue をリクエストすると http://www.yahoo.com へリダイレクトされます。

balancer のルール

balancer システムのルール (Rule) とは, リクエストが適合するかどうかの判定基準と, 適合したリクエストに対するリダイレクション URL の組合せです。 ルールは org.apache.webapp.balancer.Rule インタフェースを実装します。

balancer の配布物には多くの有用なルールが含まれています。 そのフレームワークもまた拡張容易性のために設計されていますから, あなたはあなた自身のルールを手早く書けます。 ルールは JavaBeans とします (public な無引数コンストラクタ, プロパティ xxx のための public な setter メソッド setXXX)。 Jakarta Commons Digester がインスタンスを作成するからです。 ルールの入手性,または配布物にあなたのルールを含めることについては, お気兼ねなく tomcat-user メーリング・リストにお問い合わせください。

ルールは RuleChain にまとめられます。 各 BalancerFilter (または Servlet/JSP) はリダイレクションの決定を行うとき 1 個の RuleChain を参照します。 必ずしもサンプル・コンフィグレーションのように 1 個のフィルタを /* に適用するだけに限定されてはいないことに注意してください。 Servlet Specification に定義されているフィルタ・マッピングのさまざまな方法をフルに使って, 好きなだけ多くのフィルタを設定できます。 各フィルタはそれ自身の RuleChain を 1 個持つことになります。

動かし方

  1. さまざまなルールとリダイレクション場所からなる あなたのルール・コンフィグレーション・ファイルを書きます。
  2. web.xml で balancer のフィルタを定義します。 つまり,好きなようにフィルタを mapping して (/* が典型的です), あなたのルール・コンフィグレーション・ファイルで設定します。
  3. サーバが,フィルタをイニシャライズして,スタートします。
  4. リクエストがサーバに到来します。 フィルタは自分の rule chain と相談して,リクエストをどこへリダイレクトするかを決定します。 各ルールは,ルール・コンフィグレーション・ファイルに定義された順序で相談されます。 最初に適合したルールが評価をストップさせ,リクエストのリダイレクションをひき起こします。

コメント

どうか疑問,コメント,提案などを tomcat-user メーリング・リストにください。 よろしくお願いします。


Copyright © 1999-2006, Apache Software Foundation