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