HTTPリクエストに含まれるURLパターンによってリクエストを振り分けることで,特定の処理だけをWebコンテナに実行させたり,複数のWebコンテナに処理内容に応じて振り分けたりできます。なお,URLパターンによる振り分けは,原則としてWebアプリケーション単位で振り分けます。URLパターンは,リダイレクタの動作として定義します。
URLパターンによるリクエストの振り分けは,次の手順で設定します。
URLパターンでのリクエスト振り分けの例を次の図に示します。
図4-6 URLパターンでのリクエスト振り分けの例
この例では,ホストAにはWebアプリケーション「app1」,ホストBにはWebアプリケーション「app2」がそれぞれデプロイされています。処理したいWebアプリケーション名をリクエストのURLパターンに含めることで,「/app1/*」というURLパターンを持つリクエストはホストAで,「/app2/*」というURLパターンを持つリクエストはホストBで処理できるようにします。ホストAのワーカ名は「worker1」,ホストBのワーカ名は「worker2」です。
workers.propertiesの例を次に示します。ここでは,複数のWebコンテナへリクエストを振り分けるので,Webサーバに登録したリダイレクタに,複数のWebコンテナのワーカを振り分け先として指定します。
worker.list=worker1,worker2
worker.worker1.port=8007
worker.worker1.host=hostA
worker.worker1.type=ajp13
worker.worker1.cachesize=64
worker.worker2.port=8007
worker.worker2.host=hostB
worker.worker2.type=ajp13
worker.worker2.cachesize=64
worker.list=worker1,worker2
worker.worker1.port=8007
worker.worker1.host=hostA
worker.worker1.type=ajp13
worker.worker2.port=8007
worker.worker2.host=hostB
worker.worker2.type=ajp13
mod_jk.confおよびuriworkermap.propertiesの例を次に示します。ここでは,「/app1/*」というURLパターンと「worker1」,「/app2/*」というURLパターンと「worker2」とをマッピングします。
JkMount /app1/* worker1
JkMount /app2/* worker2
/app1/*=worker1
/app2/*=worker2