逆プロキシを設定するには、2 つのマッピング、通常マッピングと逆マッピング が必要です。
通常マッピングは、要求をコンテンツサーバーにリダイレクトします。クライアントが Proxy Server にドキュメントを要求した場合、Proxy Server は通常マッピングによって、実際のドキュメントの取得先を知る必要があります。
自動設定ファイルを使用するプロキシがある場合は、逆プロキシを使用しないでください。プロキシが不正な結果を返すことがあるためです。
逆マッピングでは、Proxy Server がコンテンツサーバーからのリダイレクトにトラップをかけます。プロキシはリダイレクトを遮断し、リダイレクトされた URL を変更して Proxy Server にマップします。たとえば、クライアントが要求するドキュメントがほかの場所に移動されていたり、見つからなかったりした場合、コンテンツサーバーは、要求された URL でドキュメントが見つからないことを説明するメッセージをクライアントに返します。コンテンツサーバーは、返されたメッセージに、移動されたファイルの取得に使用する URL を示した HTTP ヘッダーを追加します。内部のコンテンツサーバーのプライバシーを守るために、プロキシは、逆マッピングを使用して URL をリダイレクトすることができます。
ここでは、http://http.site.com/ という Web サーバーがあり、このサーバーの逆プロキシサーバーを設定する場合を考えてみます。この場合の逆プロキシは http://proxy.site.com/ とします。
サーバーマネージャーにアクセスし、「URL」タブをクリックします。
「Create Mapping」リンクをクリックします。
「Create Mapping」ページが表示されます。
表示されるページで、通常マッピングの「source prefix」と「source destination」を指定します。
たとえば、次のようになります。
「Source prefix」: http://proxy.site.com
「Source destination」: http://http.site.com/
「了解」をクリックします。
ページに戻り、たとえば、逆マッピングを作成します。
「逆マッピング」:
「Source prefix」: http://http.site.com/
「Source destination」: http://proxy.site.com/
変更を行うには、「了解」をクリックします。
「了解」ボタンをクリックすると、プロキシサーバーは 1 つ以上のマッピングを追加します。マッピングを表示するには、「View/Edit Mappings」というリンクをクリックします。追加されたマッピングは、次のような形式で表示されます。
「from」: /
「to」: http://http.site.com/
これらの追加の自動マッピングは、逆プロキシを通常のサーバーとして接続してくるユーザーを対象としています。最初のマッピングは、逆プロキシを通常のプロキシとして接続してくるユーザーを対象としています。"/" マッピングは、ユーザーが管理 GUI によって自動的に指定された「Map Source Prefix」テキストボックスの内容を変更していない場合にのみ追加されます。設定方法によりますが、通常、必要とされるのは 2 つ目のマッピングのみですが、余分なマッピングを設定してもプロキシに問題が発生することはありません。
Web サーバーに複数の DNS エイリアスが存在する場合、各エイリアスに対応する通常マッピングが必要です。Web サーバーが複数の DNS エイリアスによって、自分自身に対するリダイレクトを複数生成する場合、これらのエイリアスには、それぞれに対応する逆マッピングが必要です。
配信元サーバー上で CGI アプリケーションがまだ実行されています。Proxy Server が単独で CGI アプリケーションを実行することはありません。ただし、CGI スクリプトによって結果をキャッシュするように指示されている (Last-modified または Expires ヘッダーによってゼロ以外の time-to-live を示唆することにより) 場合、プロキシは結果をキャッシュします。
Web サーバーのコンテンツをオーサリングする場合は、コンテンツが逆プロキシからも提供されることに注意してください。したがって、Web サーバー上のファイルに対するすべてのリンクを、相対リンクにする必要があります。HTML ファイルでは、ホスト名を参照しないでください。すべてのリンクを次のページのものにする必要があります。
/abc/def
この場合の完全修飾ホスト名は次のとおりです。
http://http.site.com/abc/def
逆プロキシモードで発生するエラーのカスタムエラーページを指定できます。これらのエラーページは、プロキシによって生成されるエラーより優先されます。これにより、クライアントから、Proxy Server が設定されていることがわからないようにすることができます。
セキュリティー保護された逆プロキシを設定する前に、デジタル署名、認証局 (Certificate Authority、ACA)、および認証についてよく理解しておく必要があります。
セキュリティー保護された逆プロキシの設定は、セキュリティー保護されていない逆プロキシの設定とほぼ同じです。唯一異なる点は、暗号化するファイルのプロトコルとして HTTPS を指定する必要があるということだけです。
次の手順に、ユーザーが選択する設定シナリオに応じた、セキュリティー保護された逆プロキシの設定方法を説明します。マッピングの設定方法を説明するために、ここでは、http.site.com という Web サーバーがあり、proxy.site.com というセキュリティー保護された逆プロキシを設定する場合を考えてみます。手順を実際に実行する場合は、下記の例で使用されている名前を、実際の Web サーバー名とプロキシ名に置き換えてください。
サーバーマネージャーにアクセスし、「URL」タブをクリックします。
「Create Mapping」リンクをクリックします。
「Create Mapping」ページが表示されます。
表示されたページで、次の方法に従って通常マッピングと逆マッピングを設定します。
「Regular mapping」:
「Source prefix」: https://proxy.mysite.com
「Source destination」: http://http.mysite.com/
「Reverse mapping」:
「Source prefix」: http://http.mysite.com/
「Source destination」: https://proxy.mysite.com/
変更を保存して適用します。
作成したマッピングを表示するには、「View/Edit Mappings」リンクをクリックします。
この設定は、プロキシサーバーがセキュリティーモードで実行されている場合にのみ機能します。つまり、暗号化を有効にして、プロキシをコマンド行から再起動する必要があります。プロキシをコマンド行から再起動するには、プロキシディレクトリに移動して ./start と入力します。
サーバーマネージャーにアクセスし、「URL」タブをクリックします。
「Create Mapping」リンクをクリックします。
「Create Mapping」ページが表示されます。
表示されたページで、次の方法に従って通常マッピングと逆マッピングを設定します。
「Regular mapping」:
「Source prefix」: http://proxy.mysite.com
「Source destination」: https://http.mysite.com/
「Reverse mapping」:
「Source prefix」: https://http.mysite.com/
「Source destination」: http://proxy.mysite.com/
変更を保存して適用します。
作成したマッピングを表示するには、「View/Edit Mappings」というリンクをクリックします。
この設定は、コンテンツサーバーがセキュリティーモードで実行されている場合にのみ機能します。
サーバーマネージャーにアクセスし、「URL」タブをクリックします。
「Create Mapping」リンクをクリックします。
「Create Mapping」ページが表示されます。
表示されたページで、次の方法に従って通常マッピングと逆マッピングを設定します。
「Regular mapping」:
「Source prefix」: https://proxy.mysite.com
「Source destination」: https://http.mysite.com/
「Reverse mapping」:
「Source prefix」: https://http.mysite.com/
「Source destination」: https://proxy.mysite.com/
変更を保存して適用します。
作成したマッピングを表示するには、「View/Edit Mappings」というリンクをクリックします。
この設定は、プロキシサーバーとコンテンツサーバーがセキュリティーモードで実行されている場合にのみ機能します。つまり、プロキシに対して暗号化を有効にし、プロキシをコマンド行から再起動する必要があります。プロキシをコマンド行から再起動するには、プロキシディレクトリに移動して ./restart と入力します。
仮想マルチホスティングは、配信元サーバー (逆プロキシサーバーなど) が、複数の DNS エイリアスに対して、それぞれのアドレスに別々のサーバーがインストールされているかのように応答できるようにする機能です。例として、次のような DNS ホスト名があるとします。
www
specs
phones
これらのホスト名は、同じ IP アドレス (逆プロキシの IP アドレス) にマッピングされます。次に、アクセスに使用された DNS 名に基づいて、逆プロキシに異なる動作をさせることができます。
仮想マルチホスティングを使用すると、複数の異なるドメインも 1 台の逆プロキシサーバーでホストできるようになります。次に例を示します。
www.domain-1.com
www.domain-2.com
www.domain-3.com
複数のローカルホスト名と複数のドメインの組み合わせを、すべて 1 台のプロキシサーバーに保持できます。
www
specs
phones
www.domain-1.com
www.domain-2.com
www.domain-3.com
仮想マルチホスティング機能は、DNS ホスト名およびドメイン名またはエイリアスを指定して、ターゲット URL のプレフィックスに、そのホスト名に送信された要求が送られる場所を指定することによって機能します。例として、次の 2 つのマッピングがあるとします。
engr.domain.com -> http://int-engr.domain.com
mktg.domain.com -> http://int-mktg.domain.com
マッピングはルート対ルートで行う必要はありません。ターゲット URL 内に URL パスのプレフィックスを追加することもできます。
engr.domain.com -> http://internal.domain.com/engr
mktg.domain.com -> http://internal.domain.com/mktg
仮想ドメインのマッピングにも同じことが当てはまります。たとえば、次のようなマッピングを使用できます。
www.domain-1.com -> http://int-engr.domain.com
www.domain-2.com -> http://int-mktg.domain.com
システムは、HTTP の「Host:ヘッダーを見にいきます。そのヘッダーに基づいて、一致する仮想マルチホスティングのマッピングが選択されます。一致するマルチホスティングのマッピングがない場合、サーバーは、続けて設定ファイルに表示される順にほかのマッピングを見にいきます。一致するものが見つからなければ、マッピングは実行されません。一致するものがない場合、通常、「プロキシは要求の実行を拒否しました」という応答がプロキシから返されます。
サーバーマネージャーにアクセスし、「URL」タブをクリックします。
「Configure Virtual Multihosting」リンクをクリックします。
「Configure Virtual Multihosting」ページが表示されます。
「Source Hostname (alias)」フィールドで、このマッピングを適用するローカルホスト名 (または DNS エイリアス) を入力します。
「Source Domain Name」フィールドで、このマッピングを適用するローカルドメイン名を入力します。
通常、複数の異なる DNS ドメインをマルチホストする場合を除き、この名前はユーザー自身のネットワークのドメイン名になります。
「Destination URL Prefix」フィールドに、ホスト名とドメイン名が上の指定と一致する場合に要求が送信されるターゲット URL のプレフィックスを入力します。
Iテンプレートを使用している場合は、「Use This Template」ドロップダウンリストからテンプレート名を選択します。テンプレートを適用しない場合は「NONE」のままにします。
「了解」をクリックします。
「Restart Required」をクリックします。
「Apply Changes」ページが表示されます。
「Restart Proxy Server」ボタンをクリックして、変更を適用します。
作成するそれぞれの仮想マルチホスティングのマッピングについて、上記の手順を繰り返します。
仮想マルチホスティングのマッピングはすべて、「Configure Virtual Multihosting」ページの下部に表示されます。「Source Hostname (alias)」と「Source Domain Name」フィールドは、プロキシのポート番号とともに 1 つの正規表現にマージされ、「Host:」ヘッダーとのマッチングに使用されることに注意してください。
たとえば、ホスト名が www、ドメインが example.com、ポート番号が 8080 の場合、次のような正規表現が表示されます。
www(|.example.com)(|:8080)
これは、ユーザーが入力するか、クライアントが送信する、次のようなすべての組み合わせと必ず一致します。ポート番号は、80 以外の場合でも、サーバーがそのポートで待機していたため、クライアントソフトウェアによって省略されることがあります。
www
www:8080
www.example.com
www.example.com:8080
逆プロキシのマッピングを設定する前には、クライアント自動設定機能を無効にする必要があります。クライアント自動設定機能は転送プロキシを対象としており、逆プロキシは対象としていません。
仮想マルチホスティング機能により、自動逆マッピングが設定されます。「Virtual Multihosting」ページを使用して指定したマッピングに対して、逆マッピングを作成しないでください。
仮想マッピングは、obj.conf 内で virt-map 関数を使用して指定します。
仮想マッピングは、 obj.conf 設定ファイル内で指定された順にマッチングされます。仮想マッピングを行う前に、通常マッピング、逆マッピング、正規表現によるマッピング、またはクライアント自動設定によるマッピングが存在する場合、これらが最初に適用されます。同様に、仮想マッピング内に一致するものが存在しない場合、obj.conf 内の仮想マッピングセクションの次にあるマッピングに進んで変換が行われます。
仕様の順序では、逆マッピングを他のマッピングの前に指定する必要があります。
Proxy Server のポート番号が変更された場合、新しいポート番号を反映するため、仮想マルチホスティングのマッピングを再作成する必要があります。