Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

4.23.2 URLパターンでのリクエストの振り分け

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パターンの種類と適用されるパターンの優先順位

(1) リダイレクタによるリクエスト振り分けの例

リダイレクタによるリクエストの振り分けの例を,次の図に示します。

図4-38 リダイレクタによるリクエストの振り分け(特定のリクエストをWebコンテナに転送する場合)

[図データ]

図4-39 リダイレクタによるリクエストの振り分け(リクエストを複数のWebコンテナに振り分けて転送する場合)

[図データ]

(2) URLパターンの種類と適用されるパターンの優先順位

リダイレクタのURLマッピングには次の4種類のURLパターンを指定できます。

これらの四つのURLパターンへのマッピングのうち,最優先されるURLパターンは,「完全パス指定」です。「完全パス指定」に一致しない場合,次に示す順序でパスの一致が判定され,適用されるURLパターンが決定します。

  1. 「完全パス指定」に一致しない場合
    「パス指定」「拡張子指定」「サフィックス指定」のうち,最長一致のものが適用されます。最長一致とは,先頭("/")から"*"の上位パスまでができるだけ長いものに一致することを示します。
    次のように二つのマッピングが定義されている場合を例に,説明します。
    マッピング定義:
    /examples/* worker1
    /examples/jsp/* worker2
    この場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用され,URLが"/examples/test/index.jsp"の場合にはworker1のマッピングが適用されます。
  2. 1.の条件に加えて,最長一致する「パス指定」「拡張子指定」「サフィックス指定」が複数存在する場合
    「パス指定」より,「拡張子指定」または「サフィックス指定」が優先されます。
    次のように二つのマッピングが定義されている場合を例に,説明します。
    マッピング定義:
    /examples/jsp/* worker1
    /examples/jsp/*.jsp worker2
    この場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用され,URLが"/examples/jsp/test.html"の場合にはworker1のマッピングが適用されます。
  3. 1.および2.の条件に加えて,最長一致する「拡張子指定」「サフィックス指定」が複数存在する場合
    あとに指定したURLパターンが優先されます。
    次のように二つのマッピングが定義されている場合を例に,説明します。
    マッピング定義:
    /examples/*.jsp worker1
    /examples/*jsp worker2
    この順番に指定されていた場合,URLが"/examples/jsp/index.jsp"の場合にはworker2のマッピングが適用されます。
    注意
    URLパターンでの注意事項を次に示します。
    • URLパターンの先頭に"/"以外を指定した場合,そのマッピングは無視されます。
    • 指定できる"*"は一つだけです。
    • "*"の前は"/"である必要があります。
    • 同じURLパターンのマッピングを複数記述しないでください。複数記述したときの動作は保証できません。