アプリケーション要求ルーティング処理を使用したパイロット プログラム管理
作成者: IIS チーム
概要
このトピックでは、アプリケーション要求ルーティング処理を使用してパイロットまたはベータのプログラムを起動および管理する手順について説明します。 アプリケーション要求ルーティング処理を使用すると、適切なユーザーを対象とし、パイロット サイトにルーティングできます。また、パイロット サイトにルーティングされるトラフィックの量を制限および管理することもできます。 このチュートリアルでは、アプリケーション要求ルーティング処理を使用して、ユーザーのプロファイルに基づいてパイロット サイトに特定の要求をルーティングする方法に焦点を当てています。
目的
パイロット プログラムの起動に関するリスクを管理および軽減するようにアプリケーション要求ルーティング処理を構成することです。
前提条件
このチュートリアルでは、次の前提条件が必要です。
- Windows 2008 (任意の SKU) 以降の IIS 7.0 以降のバージョン。
- Microsoft アプリケーション要求ルーティング処理バージョン 1 と依存モジュール。
- サイトとアプリケーションが正常に実行されているコンテンツ サーバー (4 台以上)。 2 台のサーバーを使用して運用サイトをシミュレートし、残りの 2 台のサーバーはパイロット サイトをシミュレートします。
- .NET 3.5 がインストールされているコンピューター上の Microsoft Internet Explorer の代替ブラウザー (Firefox など)。 (このセットアップはテスト目的でのみ使用されます。)
こちらのドキュメントに記載されている手順に従って、アプリケーション要求ルーティング処理をインストールします。
もう 1 つの前提条件は、アプリケーション要求ルーティング処理 (ARR) サーバー グループ の定義と構成に関する記事に記載されている手順に従って、リーダーが 2 つのサーバー ファームを定義および構成済みであることです。 1 つのサーバー ファームは運用環境を表し、もう 1 つはパイロット環境を表します。
手順 1 – ユーザーのプロファイルに基づいて要求をルーティングするように URL 書き換えルールを変更する
この手順では、URL 書き換えルールを変更して、.NET 3.5 をインストール済みで Microsoft Internet Explorer (IE) を使用しているユーザーのみが、pilotSiteServers として定義されたパイロット サイトにルーティングされるようにします。 その他はすべて、productionSiteServers として定義された運用サイトにルーティングされます。
UI を使用して URL 書き換えルールを変更するには:
IIS マネージャーを起動します。
サーバー ファーム pilotSiteServers を選択します。
次のアイコンが表示されます。
[ルーティング規則] をダブルクリックします。
このシナリオには、HTTP 要求ヘッダーの条件一致が設定されている複数のサーバー ファームが必要なため、追加のオプションを公開する URL 書き換え UI を使用して変更が行われます。 [Advanced Routing]\(高度なルーティング\) の下の [URL 書き換え] をクリックします。
2 つのルールが既に作成されていますが、変更する必要があることに注意してください。
このチュートリアルでは、ルールの順序が重要です。 ARR_productionSiteServers_loadbalance が ARR_pilotServers_loadbalance の上にある場合は、ルールを選択した後に [上に移動] または [下に移動] を使用すると、ルールの順序を変更できます。
[ARR_pilotSite_Servers_loadbalance] を選択し、[操作] ペインで [編集...] をクリックします。
.NET 3.5 を利用する IE が使用されているクライアントは、pilotSiteServers サーバー ファームに移動するように指定する必要があります。 これを行うには、条件を追加します。 [条件の追加] をクリックし、[追加...] をクリックします。
条件入力として「{HTTP_USER_AGENT}」と入力し、パターンとして「*MSIE* 」と入力します。 この条件は、クライアントで IE が使用されているかどうかを確認します。
.NET バージョンを確認する別の条件を追加します。 [追加...] をクリックし、条件入力として「{HTTP_USER_AGENT}」と入力し、パターンとして「*.NET CLR 3.5*」と入力します。
最後に、[Stop processing of subsequent rules]\(後続のルールの処理を停止\) チェック ボックスをオフにし、[適用] をクリックして変更内容を保存します。
前述のように、ルールの順序が重要です。 これは、[Stop processing of subsequent rules]\(後続のルールの処理を停止\) が選択されていない場合、URL 書き換えによってルールが順に処理されるためです。 そのため、この場合、最初のルールである ARR_pilotSiteServers_loadbalance が最初に考慮されます。 このルールにより、クライアントで IE が使用され、かつ .NET 3.5 がインストールされているかどうかの照合が試行されます。 その場合、要求は pilotSiteServers サーバー ファームに転送されます。 [Stop processing of subsequent rules]\(後続のルールの処理を停止\) チェック ボックスがオフになっているため、2 番目のルール ARR_productionSiteServers_loadbalance が処理されます。これにより、残りのすべての要求が productionSiteServers サーバー ファームにルーティングされます。
コマンド ラインを使用して URL 書き換えルールを変更するには:
管理者特権でコマンド プロンプトを開きます。
%windir%\system32\inetsrv
に移動します。HTTP_USER_AGENT で IE と .NET 3.5 をチェックするように ARR_pilotSiteServers_loadbalance ルールを変更するには、次のように入力します。
appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_pilotSiteServers_loadbalance'].conditions.[input='{HTTP_USER_AGENT}',pattern='*MSIE*']" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_pilotSiteServers_loadbalance'].conditions.[input='{HTTP_USER_AGENT}',pattern='*.NET CLR 3.5*']" /commit:apphost
ARR_pilotSiteServers_loadbalance に対する [Stop processing of subsequent rules]\(後続のルールの処理を停止\) の選択を解除するには、次のように入力します。
appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_pilotSiteServers_loadbalance'].stopProcessing:"False" /commit:apphost
まとめ
これで、URL 書き換えのルールが正常に変更され、アプリケーション要求ルーティング処理を利用して、ユーザーのサブセットのみがパイロット サイトにルーティングされるようになりました。 その他のアプリケーション要求ルーティング処理のプロパティと機能については、他のアプリケーション要求ルーティング処理のチュートリアルを参照してください。