作成者: Jim van de Erve
この記事では、インターネット インフォメーション サービス (IIS) のアプリケーション要求ルーティング処理 (ARR) と URL 書き換えの機能を使用して、転送プロキシ サーバーを実装する方法を示します。
概要
アプリケーション要求ルーティング処理は、プロキシ サーバーを使用してインターネット トラフィックを制御できる IIS の機能です。 プロキシ サーバーは、要求側のクライアントまたは応答側の Web サーバー ワーカーのための単一の接続ポイントとなります。 要求側では、プロキシが複数のクライアントのいずれかからの要求を受け入れ、それをインターネットに転送します。 インターネット上では、その要求がクライアントではなくプロキシから送信されているように見えます。 応答側では、プロキシがインターネットからの要求を受け入れ、それを複数のワーカーのいずれかに配布します。 インターネット上では、要求の処理や応答の生成が、バックエンド ワーカーのいずれかによってではなく、プロキシ サーバー自体によって行われているように見えます。
最初の種類のプロキシ サーバーは、クライアントからのアウトバウンド要求を処理し、それをインターネットに転送し、生成された応答をクライアントに返すものです。これは転送プロキシと呼ばれます。 2 番目の種類のプロキシ サーバーは、インターネットからの着信要求を処理し、それをバックエンド ワーカーに転送し、応答をインターネットに返すものです。これはリバース プロキシと呼ばれます。
転送プロキシとリバース プロキシの機能は大きく異なりますが、リクエスターまたはレスポンダーのプロキシとして機能するという基本的なアクションはどちらも同じです。 どちらの場合も、プロキシ サーバーによってプライベート ネットワークがインターネットから分離されて、セキュリティを強化するための対策を講じることができるようになります。 どちらの場合もプロキシによって要求と応答が処理されるので、トラフィックに対して、キャッシュ処理や圧縮を使用したパフォーマンス向上、攻撃からの保護、情報のフィルター処理を行う操作を実行できるようになります。
転送プロキシとしての ARR
ARR は転送プロキシとして機能する場合、クライアント コンピューターの内部ネットワーク (つまりイントラネット) の一部となります。 プロキシは、URL 書き換えルールを使用して、クライアントからの要求をインターネットに渡します。 転送プロキシとしての ARR を使用すると、キャッシュ処理によって帯域幅の使用状況やパフォーマンスを向上させることができます。ただし、本格的な商用グレードの転送プロキシとしては適していません。
ARR で処理されるのは HTTP トラフィックのみであり、他のプロトコルは処理されないことにご注意ください。 ARR は HTTP CONNECT 動詞をサポートしていないため、HTTPS トラフィックの転送はサポートされません。
転送プロキシ サーバーは、いずれかのクライアントからターゲット Web サーバー名の指定された要求を受信すると、その要求を次のように処理して、ファイアウォール経由でインターネットに転送します。
- 転送プロキシ サーバーは、クライアントからの要求を受信し、その有効性を確認します。
- 要求が有効な場合、ARR はキャッシュ内を調べて、応答が既にそこに存在していないか確認します。 応答が見つかった場合、ARR は要求をインターネットに送信しないで、その応答をクライアントに返します。
- ARR がキャッシュ内で応答を見つけられない場合、プロキシ サーバーはファイアウォールを経由して要求をインターネット接続に、そして情報を持つコンテンツ サーバーに送信します。
- 要求がコンテンツ サーバーによって処理されると、応答がインターネット経由で転送プロキシ サーバーに返されます。 応答をキャッシュするように ARR を構成できます。
転送プロキシには次の利点があります。
- 定期的に要求される情報をキャッシュすることで、パフォーマンスが向上し、ネットワーク トラフィックが軽減されます (有効にした場合)。 最初のリクエスターに対する応答をキャッシュして、後続のクライアントが同じコンテンツを要求したときに、キャッシュからコンテンツが提供されます。 コンテンツ サーバーに応答をもう一度要求することはありません。
- 要求が有効であることを確認することで、ネットワーク セキュリティの向上に役立ちます。
- IIS 圧縮を使用してパフォーマンスを向上させます (有効にした場合)。
- URL 書き換えを使用して、ポリシーを満たすためのフィルター処理をサポートします。
転送プロキシとしての ARR のインストールと構成
前提条件
ARR を使用して転送プロキシ サーバーを設定するには、次のものが必要です。
- Windows 2008 (任意の SKU) 以上に IIS 7.0 以降があり、トレース役割サービスが IIS 用にインストールされていること。
- Microsoft アプリケーション要求ルーティング処理バージョン 3 と依存モジュール
- 作業サイトとアプリケーションを持つワーカー サーバーが 1 つ以上。
ARR のインストール
アプリケーション要求ルーティング処理バージョン 3 がインストールされていない場合は、ここからダウンロードできます。 このリンクで表示されるダウンロード サイトには、インストール手順が含まれています。
URL 書き換えのインストール
サーバー マネージャーを使用して、IIS 用の URL 書き換えモジュールをインストールします。 詳細については、「Windows Server 2012 R2 への IIS 8.5 のインストール」を参照してください。
転送プロキシとしての ARR の構成
ARR をプロキシとして有効にし、ARR を転送プロキシとして有効にする URL 書き換えルールを作成するには、次の手順に従います。
[インターネット インフォメーション サービス (IIS) マネージャー] を開きます。
[接続] ウィンドウでサーバーを選択します。
サーバー ウィンドウで、[アプリケーション要求ルーティング処理キャッシュ] をダブルクリックします。
[操作] ウィンドウで、[サーバー プロキシの設定] をクリックします。
[アプリケーション要求ルーティング処理] ページで、[プロキシの有効化] を選択します。
[操作] ウィンドウで、[適用] をクリックします。 これにより、プロキシとしての ARR がサーバー レベルで有効になります。
ARR を転送プロキシにするプロセスを開始するには、[接続] ウィンドウでサーバー ノードをクリックします。
サーバー ウィンドウで、[URL 書き換え] をダブルクリックします。
[操作] ウィンドウで [ルールの追加] をクリックします。
[ルールの追加] ダイアログ ボックスで、[空白のルール] をダブルクリックします。
[インバウンド ルールの編集] ダイアログ ボックスで、[名前] に「Forward Proxy」と入力します。 [URL の一致] 領域に、次のように入力します。
- 使用する: ワイルドカード
- パターン: *
[インバウンド ルールの編集] ダイアログ ボックスで [条件] 領域が表示されるまで下にスクロールし、[追加…] をクリックします。
[条件の追加] ダイアログ ボックスで、次を選択または入力します。
- 条件入力: {HTTP_HOST}
- 型: パターンと一致する
- パターン: *
[インバウンド ルールの編集] ダイアログ ボックスで [アクション] 領域が表示されるまで下にスクロールし、次を入力します。
- アクションの種類: 書き換え
- 書き換え URL: http://{C:1}/{R:0}
[操作] ウィンドウで、[適用] をクリックします。
Note
この規則により、HTTP メッセージが転送プロキシを通過できます。 ARR は HTTP CONNECT をサポートしていないため、この転送プロキシでは HTTPS (443) のメッセージはサポートされていません。
アプリケーション、ブラウザーなどで、必要に応じてプロキシ設定を構成します。