Application Request Routing を使用した 3 層展開アーキテクチャの構成

公開日: 2008 年 7 月 2 日 (作業者: pharr (英語))

更新日: 2009 年 7 月 17 日 (作業者: pharr (英語))

概要

このトピックでは、Application Request Routing を使用して、3 層展開アーキテクチャを構成する手順について説明しています。3 層展開アーキテクチャは、以下に示すように、Web 層、アプリケーション サーバー層、データ層で構成されています。

Ee886277.3tier(ja-jp,TechNet.10).jpg

通常、この展開シナリオでは、静的コンテンツが第 1 層のサーバーによって処理されている間、動的コンテンツは第 2 層のサーバーのビジネス ロジックによって処理されます。

目標

Application Request Routing を使用して、3 層展開アーキテクチャを構成します。このチュートリアルでは、動的コンテンツの要求をアプリケーション サーバーに転送するのと同時に、静的コンテンツを ARR サーバーから直接処理するように ARR サーバーを構成する方法について焦点を当てています。

必要条件

このチュートリアルの必要条件は次のとおりです。

  • Windows 2008 (任意の SKU) 以降の IIS 7.0
  • Microsoft Application Request Routing Version 1 および依存モジュール
  • 運用中のサイトとアプリケーションが含まれているコンテンツ サーバー (少なくとも 2 台)
  • Application Request Routing サーバー上で使用できる静的コンテンツ

Application Request Routing Version 1 をインストールしていない場合は、以下からダウンロードできます。

Application Request Routing をインストールするには、このドキュメントに記載されている手順に従います。

もう 1 つの必要条件として、「 Application Request Routing サーバー グループの定義と構成 」に記載されている手順を使用し、サーバー ファームの定義と構成を済ませていることが必要です。

手順 1 – 静的な要求をフィルタリング処理するように URL 書き換えルールを変更する

この手順では、Application Request Routing サーバーから特定の拡張子やパスの要求が直接処理されるように、URL 書き換えルールを変更します。静的な要求は、ファイルの拡張子 (.jpg や .gif など) によって識別できます。 静的リソースが特定のフォルダー内 (/images/ など) に含まれている場合、URL 書き換えルールでは URL 内のパスを検索することができます。

このチュートリアルでは、.jpg 拡張子、.css 拡張子、および /images/ フォルダーを検索するように、URL 書き換えルールを変更します。要求されたリソースに .jpg 拡張子や .css 拡張子が含まれている場合は、ARR サーバーからこの要求が直接処理されます。同様に、要求された URL に /images/ が含まれている場合も、ARR サーバーからこの要求が処理されます。他のすべての要求は、ARR サーバーの背後にあるアプリケーション サーバーに転送されます。

開始する前に、処理する静的コンテンツが ARR サーバー上で使用できることを確認します。コンテンツは、ARR サーバー上にてローカルで使用できるようにするか、共有コンテンツが使用できます。

UI を使用して、URL 書き換えルールを変更するには

  1. IIS マネージャーを起動します。

  2. Application Request Routing サーバー グループの定義と構成」で作成されたサーバー ファーム myServerFarm を選択します。

  3. 以下のアイコンが表示されます。

    ![Ee886277.arricons(ja-jp,TechNet.10).jpg](images/Ee886280.arr icons(ja-jp,TechNet.10).jpg "Ee886277.arricons(ja-jp,TechNet.10).jpg")

  4. [ルーティング規則] をダブルクリックします。[次の拡張子の要求を転送しない] テキスト ボックスで、「*.jpg」と「*.css」を入力します。拡張子が複数ある場合はコンマ (,) で区切ります。URL 内のパスに一致させるには、[次のパターンの要求を転送しない] テキスト ボックスに「*/image/*」と入力します。パス /image/ の前後の任意の文字に一致させるには、ワイルドカード文字 (*) を使用します。

    Ee886277.3tierRouting(ja-jp,TechNet.10).jpg

  5. 静的イメージが ARR サーバーから提供されていることを確認するには、ログを調べます。既定では、ログは c:\inetpub\logs\LogFiles\ にあります。ARR サーバーの背後にあるアプリケーション サーバーのログ ファイルには、*.jpg、*.css、または */images/* を参照する要求がないことを確認します。

コマンド ラインを使用して、URL 書き換えルールを変更するには

  1. 管理者権限で、コマンド プロンプトを開きます。
  2. %windir%\system32\inetsrv に移動します。
  3. 以下のコマンドを入力して、URL 書き換えルールをすべてクリアします。
  • appcmd.exe clear config -section:system.webServer/rewrite/globalRules

    *.jpg 拡張子と *.css 拡張子が含まれており、かつパスが */images/* に一致するリソースの要求がアプリケーション サーバーに転送されないようにルーティング規則を変更するには、以下のコマンドを入力します。

  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost

  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*"  /commit:apphost

  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.[input='EXT_{URL}',negate='True',pattern='*.jpg']" /commit:apphost

  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.[input='EXT_{URL}',negate='True',pattern='*.css']" /commit:apphost

  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.[input='{URL}',negate='True',pattern='*/images/*']" /commit:apphost

  • appcmd.exe set config  -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.type:"Rewrite" /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.url:"http://myServerFarm1/{R:0}"  /commit:apphost

まとめ

これで、Application Request Routing の UI を使用し、URL 書き換えルールを正しく変更して、3 層展開アーキテクチャ シナリオを有効にすることができました。その他の Application Request Routing のプロパティおよび機能については、チュートリアルの「Application Request Routing を使用した HTTP 負荷分散」を参照してください。

ARR をリバース プロキシとして使用する場合、応答ヘッダーとエンティティ本体を書き換える機能を持つ URL 書き換え Version 2 と組み合わせて使用すると、このシナリオをさらに強化できます。

関連コンテンツ

記事