5.2.1 リダイレクタを使用したリクエスト振り分けの仕組み
リダイレクタを使用すると,WebサーバあてのHTTPリクエストのうち,特定のリクエストを,指定したWebコンテナに処理させたり,複数のWebコンテナにリクエストを振り分けて処理させたりできます。
リダイレクタを使用してリクエストを振り分ける場合,ワーカプロセス※というWebサーバの背後で動作するWebコンテナの実行プロセスを使用します。ワーカプロセスは,リダイレクタを経由して,サーブレット,JSPを含むリクエストを処理するプロセスです。Webサーバとワーカプロセスとの間のデータ交換は,TCP/IPに基づき,ユーザが設定する特定のポート番号を通じて実行されます。リダイレクタの設定は,ワーカというWebコンテナを抽象化した設定単位を使用して行います。ワーカには,単体のJ2EEサーバを表すワーカと,クラスタ構成のJ2EEサーバを表すワーカがあります。J2EEサーバへリクエストを転送するワーカを転送先ワーカと呼びます。転送先ワーカはワーカタイプがajp13のワーカです。
- 注※
-
ワーカプロセスは,実際には,J2EEサーバとなります。
- 〈この項の構成〉
(1) リクエストの転送パターン
リダイレクタからワーカプロセスへのリクエストの転送には,次に示すパターンがあります。
-
一つのWebサーバから一つのワーカプロセスへの転送
-
一つのWebサーバから複数のワーカプロセスへの転送
なお,Webサーバとワーカプロセスは,同一のマシン上にあっても,異なるマシン上にあってもかまいません。
リダイレクタからワーカプロセスへのリクエスト転送パターンを次の図に示します。
複数のWebコンテナへリクエストを振り分けるには,Webサーバに登録したリダイレクタに,複数のWebコンテナのワーカプロセスを振り分け先として定義します。
(2) リクエストの振り分け方法
リダイレクタを使用してリクエストを振り分ける方法には,次の3種類があります。
-
URLパターンによって振り分ける方法
一つのWebコンテナに特定の処理をさせたい場合,および複数のWebコンテナに処理を振り分けたい場合に使用します。
ワーカプロセスが一つの場合と複数の場合に使用できます。
-
ロードバランサを使用してラウンドロビン方式で振り分ける方法
複数のWebコンテナに処理を振り分けたい場合に使用します。
-
POSTデータサイズによって振り分ける方法
複数のWebコンテナに処理を振り分けたい場合に使用します。この振り分け方法は,WebサーバにHTTP Serverを使用している場合にだけ設定できます。
なお,次の機能を使用している場合,この振り分け方法は適用できません。
-
セッションフェイルオーバ機能
-
ラウンドロビン方式によるリクエストの振り分け
-
ワーカプロセスを作成するには,ワーカ定義ファイルと呼ばれるファイル(workers.properties)に,次の属性を定義します。
-
ワーカ名
-
ワーカのタイプ
-
ワーカが動作しているホスト名,またはIPアドレス
-
ワーカが受け付けるポート番号
標準で提供されるworkers.propertiesには,あらかじめ次に示すワーカが定義されています。WebサーバとWebコンテナを同一のホスト上で動作させる場合には,これらのパラメタを変更する必要はありません。
ワーカの属性 |
パラメタ |
---|---|
ワーカ名 |
worker1 |
ワーカのタイプ |
ajp13 |
ホスト名 |
localhost |
ポート番号 |
8007 |
ワーカプロセスの定義方法の詳細については,「13.2.4 workers.properties(ワーカ定義ファイル)」を参照してください。