Skip to main content

ArcGIS Server でのリバース プロキシー サーバーの構成

リバース プロキシー サーバーとは、境界ネットワーク ([DMZ] (DeMilitarized Zone) またはスクリーン サブネットとも呼ばれる) に配置され、インターネットからのリクエストを処理して内部ネットワーク内のコンピューターに転送するコンピューターです。 リバース プロキシー サーバーは、リクエストを転送することで、組織サイトのファイアウォールの内側にあるコンピューターのアイデンティティーをマスクするため、インターネット ユーザーによる直接的な攻撃から内部のコンピューターを保護できます。 さらに進んでユーザーの内部ネットワークを外部ユーザーから保護するために、追加のセキュリティー機能をリバース プロキシー サーバーに実装できます。

リバース プロキシー サーバーが状態チェック機能に対応している場合は、ArcGIS Server の状態チェック エンドポイントを使用して、サイトがリクエストを受け取れるかどうかを確認できます。 これは、サイトでソフトウェアまたはハードウェアの障害があるかどうかを迅速に確認する場合に便利です。 詳細については、ArcGIS REST API の「状態チェック」をご参照ください。

注意:

ArcGIS Server は、リバース プロキシー/ロード バランサーを通じた SSL オフロードをサポートしていません。 リバース プロキシーが構成で使用されている場合、HTTPS を通じて ArcGIS Web Adaptor にリダイレクトするか、ArcGIS Server に直接リダイレクトする必要があります。

リバース プロキシー サーバーへの ArcGIS Server の追加

組織のリバース プロキシー サーバーは、ArcGIS Server と直接通信するか、対応する URL をプロキシー ディレクトリーに追加して ArcGIS Web Adaptor 経由で通信するように構成できます。

注意:

リバース プロキシー サーバーのコンテキスト名は 1 階層だけ下の URL レベルでなければなりません。 たとえば、https://proxy.example.com/enterprise などのリバース プロキシーの URL は使用できますが、https://proxy.example.com/myorg/enterprise などのリバース プロキシーの URL は使用できません。

たとえば、リバース プロキシー サーバーとして Apache を使用している場合は、Apache Web サーバー構成ファイル httpd.conf で、ProxyPass ディレクティブに ArcGIS Server の URL または ArcGIS Web Adaptor の URL を追加する必要があります。

ArcGIS Web Adaptor を通じて通信する場合

ProxyPass /server https://gisserver.example.com/server
ProxyPassReverse /server https://gisserver.example.com/server

ArcGIS Server と直接通信する場合

ProxyPass /arcgis https://gisserver.example.com:6443/arcgis
ProxyPassReverse /arcgis https://gisserver.example.com:6443/arcgis

リバース プロキシー サーバーを使用している際に、サイトの URL の末尾がデフォルト文字列「/arcgis」(すべて小文字) でない場合は、ArcGIS Server の WebContextURL プロパティも設定する必要があります。 これにより、ArcGIS Server はすべてのリソースで正しい URL を構築して、エンド ユーザーに送信することができます。

注意:

ArcGIS Web Adaptor をサイトで構成している場合、WebContextURL プロパティを使用して ArcGIS Server の URL がその ArcGIS Web Adaptor (/mygis など) に一致するように設定します。 ArcGIS Web Adaptor が構成されていない場合、URL のリダイレクトで問題が発生しないように、サイトの URL の末尾を /arcgis にする必要があります。

次の手順で、WebContextURL を変更します。

  1. 管理者権限を持つユーザーとして、ArcGIS Server Administrator Directory (https://gisserver.example.com:6443/arcgis/admin) にログインします。

  2. systempropertiesupdate の順にクリックします。

  3. Properties テキスト ボックスに次の JSON を挿入します。ArcGIS Server の URL は、ユーザーが組織のファイアウォールの外側から参照できる URL に置換します。

    {
       "WebContextURL": "https://gisserver.example.com/mygis"
    }
    
  4. 更新 をクリックします。

  5. サイト内の各 GIS サーバーで ArcGIS Server を再起動します。 Linux 上で、コンピューターごとにインストール フォルダー内の stopserver スクリプトと startserver スクリプトを実行します。

  6. サイト内の各 GIS サーバーで ArcGIS Server を再起動します。 Windows 上で、コンピューターごとに ArcGIS Server Windows サービスを再起動します。

リバース プロキシー ヘッダーと ArcGIS Server

ArcGIS Server または ArcGIS Web Adaptor で使用するリバース プロキシー サーバーを配置する前に、適切な通信を保証するためにリバース プロキシーのヘッダーの一部を構成することをおすすめします。

リバース プロキシー サーバーは、リダイレクト (HTTP コード 301 または 302) を検出できる必要があります。 場所のヘッダーを更新して、レスポンスの完全修飾ドメイン名 (FQDN) とコンテキストを、サーバーの WebContextURL 値と一致させます。

X-Forwarded-Host

リバース プロキシーを ArcGIS Server または ArcGIS Web Adaptor と統合する際は、これらのコンポーネントが両方とも、リバースー プロキシ サーバーによって送信されるヘッダー内に次のプロパティが設定される必要があることに注意してください。

X-Forwarded-Host=<FQDN of reverse proxy server>

このプロパティがヘッダーに設定されている場合、ArcGIS Server および ArcGIS Web Adaptor は、そのリバース プロキシー サーバーの URL に一致するリバース プロキシー サーバーにリクエストを返します。 たとえば、ArcGIS Server Services Directory (https://reverseproxy.example.com/arcgis/rest/services) に対するリクエストは、同じ URL としてクライアントに返されます。

X-Forwarded-Host ヘッダー プロパティが設定されていない場合、ArcGIS Server および ArcGIS Web Adaptor は、リクエストが転送された内部コンピューターの URL を返すことがあります (たとえば、https://reverseproxy.example.com/arcgis/rest/services ではなく https://gisserver.example.com/arcgis/rest/services)。 このような場合は、クライアントがこの URL にアクセスできなくなる (一般的に、ブラウザーの 404 エラーとして知られている) ため、問題が起こりがちになります。 また、クライアントはその内部コンピューターについての情報を一部入手することにもなります。

クライアントと ArcGIS Server または ArcGIS Web Adaptor の間の通信のトラブルシューティングを行う際は、リバース プロキシー サーバーで X-Forwarded-Host ヘッダー プロパティを設定することをおすすめします。このプロパティの有無が通信障害の一般的な原因であるからです。 このヘッダーの設定方法は、ユーザーのリバース プロキシー サーバーの実装によって異なります。 たとえば、Apache は ProxyPreserveHost On ディレクティブをその構成に含めることでこれを実施します。

...
ProxyPreserveHost On
ProxyPass /server https://gisserver.example.com/server
ProxyPassReverse /server https://gisserver.example.com/server
...

元のホストのヘッダーを渡す方法については、ユーザーのリバース プロキシー サーバーの製品ドキュメントをご参照ください。