Application Request Routing を使用した 3 層展開アーキテクチャの構成
公開日: 2008 年 7 月 2 日 (作業者: pharr (英語))
更新日: 2009 年 7 月 17 日 (作業者: pharr (英語))
概要
このトピックでは、Application Request Routing を使用して、3 層展開アーキテクチャを構成する手順について説明しています。3 層展開アーキテクチャは、以下に示すように、Web 層、アプリケーション サーバー層、データ層で構成されています。
通常、この展開シナリオでは、静的コンテンツが第 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 をインストールしていない場合は、以下からダウンロードできます。
- Microsoft Application Request Routing Version 1 for IIS 7 (x86) をダウンロード(英語)。
- Microsoft Application Request Routing Version 1 for IIS 7 (x64) をダウンロード(英語)。
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 書き換えルールを変更するには
IIS マネージャーを起動します。
「Application Request Routing サーバー グループの定義と構成」で作成されたサーバー ファーム
myServerFarm
を選択します。以下のアイコンが表示されます。
![Ee886277.arricons(ja-jp,TechNet.10).jpg](images/Ee886280.arr icons(ja-jp,TechNet.10).jpg "Ee886277.arricons(ja-jp,TechNet.10).jpg")
[ルーティング規則] をダブルクリックします。[次の拡張子の要求を転送しない] テキスト ボックスで、「*.jpg」と「*.css」を入力します。拡張子が複数ある場合はコンマ (,) で区切ります。URL 内のパスに一致させるには、[次のパターンの要求を転送しない] テキスト ボックスに「*/image/*」と入力します。パス /image/ の前後の任意の文字に一致させるには、ワイルドカード文字 (*) を使用します。
静的イメージが ARR サーバーから提供されていることを確認するには、ログを調べます。既定では、ログは
c:\inetpub\logs\LogFiles\
にあります。ARR サーバーの背後にあるアプリケーション サーバーのログ ファイルには、*.jpg、*.css、または */images/* を参照する要求がないことを確認します。
コマンド ラインを使用して、URL 書き換えルールを変更するには
- 管理者権限で、コマンド プロンプトを開きます。
%windir%\system32\inetsrv
に移動します。- 以下のコマンドを入力して、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 と組み合わせて使用すると、このシナリオをさらに強化できます。