リバース プロキシ サーバーとは、境界ネットワーク (DMZ (DeMilitarized Zone) またはスクリーン サブネットとも呼ばれる) に配置され、インターネットからのリクエストを処理して内部ネットワーク内のコンピューターに転送するコンピューターです。リバース プロキシ サーバーは、リクエストを転送することで、組織サイトのファイアウォールの内側にあるコンピューターのアイデンティティをマスクするため、インターネット ユーザーによる直接的な攻撃から内部のコンピューターを保護できます。さらに進んでユーザーの内部ネットワークを外部ユーザーから保護するために、追加のセキュリティ機能をリバース プロキシ サーバーに実装できます。
リバース プロキシ サーバーが状態チェック機能に対応している場合は、ArcGIS Server の状態チェック エンドポイントを使用して、サイトがリクエストを受け取れるかどうかを確認できます。これは、サイトでソフトウェアまたはハードウェアの障害があるかどうかを迅速に確認する場合に便利です。詳細については、ArcGIS REST API の「状態チェック」をご参照ください。
リバース プロキシ サーバーへの ArcGIS Server の追加
組織のリバース プロキシ サーバーは、ArcGIS Server と直接通信するか、対応する URL をプロキシ ディレクトリに追加して ArcGIS Web Adaptor 経由で通信するように構成できます。
たとえば、リバース プロキシ サーバーとして Apache を使用している場合は、Apache Web サーバー構成ファイル ProxyPass で、httpd.conf ディレクティブに ArcGIS Server の URL または ArcGIS Web Adaptor の URL を追加する必要があります。
ArcGIS Web Adaptor を通じて通信する場合
ProxyPass /server https://gisserver.domain.com/server
ProxyPassReverse /server https://gisserver.domain.com/server
ArcGIS Server と直接通信する場合
ProxyPass /arcgis https://gisserver.domain.com:6443/arcgis
ProxyPassReverse /arcgis https://gisserver.domain.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 にする必要があります。
- 管理者権限を持つユーザーとして、ArcGIS Server Administrator Directory (https://gisserver.domain.com:6443/arcgis/admin) にログインします。
- [system] → [properties] → [update] の順にクリックします。
- [Properties] テキスト ボックスに次の JSON を挿入します。ArcGIS Server の URL は、ユーザーが組織のファイアウォールの外側から参照できる URL に置換します。
{ "WebContextURL": "https://gisserver.domain.com/mygis" }
- [更新] をクリックします。
- サイト内の各 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.domain.com/arcgis/rest/services) に対するリクエストは、同じ URL としてクライアントに返されます。
X-Forwarded-Host ヘッダー プロパティが設定されていない場合、ArcGIS Server および ArcGIS Web Adaptor は、リクエストが転送された内部コンピューターの URL を返すことがあります (たとえば、https://gisserver.domain.com/arcgis/rest/services ではなく https://reverseproxy.domain.com/arcgis/rest/services)。このような場合は、クライアントがこの URL にアクセスできなくなる (一般的に、ブラウザーの 404 エラーとして知られている) ため、問題が起こりがちになります。また、クライアントはその内部コンピューターについての情報を一部入手することにもなります。
クライアントと ArcGIS Server または ArcGIS Web Adaptor 間の通信のトラブルシューティングを行う際は、リバース プロキシ サーバーで X-Forwarded-Host ヘッダー プロパティを設定することをお勧めします。このプロパティの有無が通信障害の一般的な原因であるからです。このヘッダーの設定方法は、ユーザーのリバース プロキシ サーバーの実装によって異なります。たとえば、Apache は ProxyPreserveHost On ディレクティブをその構成に含めることでこれを実施します。
... ProxyPreserveHost On ProxyPass /server https://gisserver.domain.com/server ProxyPassReverse /server https://gisserver.domain.com/server
...
元のホストのヘッダーを渡す方法については、ユーザーのリバース プロキシ サーバーの製品ドキュメントをご参照ください。