Cosminexus 機能解説
HTTPリクエストに含まれるURLパターンによって,リクエストを振り分けます。これによって,特定の処理だけをWebコンテナに実行させたり,複数のWebコンテナに処理内容に応じて処理を振り分けたりできます。例えば,「『/examples/』というURLを含むHTTPリクエストをWebコンテナで処理する」という定義や,「『/examples1/』というURLを含むHTTPリクエストはWebコンテナAで,『/examples2/』というURLを含むHTTPリクエストはWebコンテナBで処理する」といった定義ができます。
Webコンテナに転送するリクエストは,URLパターンとワーカプロセスのマッピングによって定義します。リダイレクタは設定されたURLパターンに従って,リクエストを転送するWebコンテナを切り替えます。なお,URLパターンによる振り分けは,原則としてWebアプリケーション単位で振り分けます。
URLパターンは,リダイレクタの動作として定義します。URLパターンでのリクエスト振り分けの設定については,マニュアル「Cosminexus システム構築ガイド」を参照してください。
- <この項の構成>
- (1) リダイレクタによるリクエスト振り分けの例
- (2) URLパターンの種類と適用されるパターンの優先順位
リダイレクタによるリクエストの振り分けの例を,次の図に示します。
図4-38 リダイレクタによるリクエストの振り分け(特定のリクエストをWebコンテナに転送する場合)
図4-39 リダイレクタによるリクエストの振り分け(リクエストを複数のWebコンテナに振り分けて転送する場合)
リダイレクタのURLマッピングには次の4種類のURLパターンを指定できます。
- 完全パス指定
完全に一致するパターンです。
- 例:
- URLパターンが"/examples/jsp/index.jsp"で,URLが"/examples/jsp/index.jsp"の場合,一致となります。
- パス指定
パスが一致するパターンです。
- 例:
- URLパターンが"/examples/*"で,URLが"/examples/jsp/index.jsp"などの場合,一致となります。
- 拡張子指定
拡張子が一致するパターンです。指定されたパス以下のすべての階層に適用されます。
- 例:
- URLパターンが"/examples/*.jsp"で,URLが"/examples/jsp/index.jsp"などの場合,一致となります。
- サフィックス指定
サフィックスが一致するパターンです。指定されたパス以下のすべての階層に適用されます。
- 例:
- URLパターンが"/examples/servlet/*Servlet"で,URLが"/examples/servlet/HelloServlet"などの場合,一致となります。
これらの四つのURLパターンへのマッピングのうち,最優先されるURLパターンは,「完全パス指定」です。「完全パス指定」に一致しない場合,次に示す順序でパスの一致が判定され,適用されるURLパターンが決定します。
- 「完全パス指定」に一致しない場合
「パス指定」「拡張子指定」「サフィックス指定」のうち,最長一致のものが適用されます。最長一致とは,先頭("/")から"*"の上位パスまでができるだけ長いものに一致することを示します。
次のように二つのマッピングが定義されている場合を例に,説明します。
- マッピング定義:
- /examples/* worker1
- /examples/jsp/* worker2
この場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用され,URLが"/examples/test/index.jsp"の場合にはworker1のマッピングが適用されます。
- 1.の条件に加えて,最長一致する「パス指定」「拡張子指定」「サフィックス指定」が複数存在する場合
「パス指定」より,「拡張子指定」または「サフィックス指定」が優先されます。
次のように二つのマッピングが定義されている場合を例に,説明します。
- マッピング定義:
- /examples/jsp/* worker1
- /examples/jsp/*.jsp worker2
この場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用され,URLが"/examples/jsp/test.html"の場合にはworker1のマッピングが適用されます。
- 1.および2.の条件に加えて,最長一致する「拡張子指定」「サフィックス指定」が複数存在する場合
あとに指定したURLパターンが優先されます。
次のように二つのマッピングが定義されている場合を例に,説明します。
- マッピング定義:
- /examples/*.jsp worker1
- /examples/*jsp worker2
この順番に指定されていた場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用されます。
- 注意
- URLパターンでの注意事項を次に示します。
- URLパターンの先頭に"/"以外を指定した場合,そのマッピングは無視されます。
- 指定できる"*"は一つだけです。
- "*"の前は"/"である必要があります。
- 同じURLパターンのマッピングを複数記述しないでください。複数記述したときの動作は保証できません。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.