Skip To Content

Использование обратного прокси-сервера с ArcGIS Server

Обратный прокси-сервер – это компьютер, установленный в пределах пограничной сети (т.н. демилитаризованной зоны [DMZ] или промежуточной подсети), который обрабатывает запросы из Интернета и перенаправляет их на компьютеры внутренней сети. Перенаправляя запросы, обратный прокси-сервер маскирует идентичность компьютеров, находящихся за брандмауэром организации, защищая таким образом внутренние компьютеры от прямых атак со стороны пользователей интернета. На обратном прокси-сервере можно реализовать дополнительные функции безопасности, позволяющие еще больше защитить внутреннюю сеть от пользователей извне.

Если вы используете обратный прокси-сервер с функцией проверки работоспособности, рекомендуем вам использовать точку доступа проверки работоспособности ArcGIS Server, чтобы определить, может ли данный сайт получать запросы. Это используется, чтобы быстро определить, нет ли на сайте аппаратного или программного сбоя. Дополнительные сведения см. в разделе Проверка работоспособности в ArcGIS REST API.

Добавление ArcGIS Server к обратному прокси-серверу

Обратный прокси-сервер организации можно настроить для обмена данными либо напрямую с ArcGIS Server, либо через ArcGIS Web Adaptor, добавив соответствующие URL-адреса в директивы прокси.

Например, если в качестве обратного прокси-сервера вы используете Apache, то вам потребуется добавить URL-адрес ArcGIS Server или URL-адрес ArcGIS Web Adaptor в директивы ProxyPass в файл конфигурации веб-сервера Apache httpd.conf:

Если обмен данными осуществляется через 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, чтобы задать URL-адрес ArcGIS Server, который соответствовал бы своему ArcGIS Web Adaptor (такому как /mygis). Если веб-адаптер не настроен, URL-адрес сайта должен оканчиваться на /arcgis, чтобы избежать возможных проблем с перенаправлением URL.

Чтобы изменить WebContextURL, сделайте следующее:

  1. Войдите в Administrator Directory ArcGIS Server по адресу https://gisserver.domain.com:6443/arcgis/admin как пользователь с правами доступа администратора.
  2. Щелкните система > свойства > обновить.
  3. В окне для текста Свойства вставьте следующий JSON, заменив свой собственный URL-адрес ArcGIS Server, который видят пользователи за пределами брандмауэра вашей организации.
    {
       "WebContextURL": "https://gisserver.domain.com/mygis"
    }
  4. Щелкните Обновление.
  5. Перезапустите ArcGIS Server на всех ГИС-серверах сайта. В Windows это можно выполнить посредством перезапуска сервиса Windows ArcGIS Server на каждом компьютере.

Заголовки обратных прокси-серверов и ArcGIS Server

При интеграции обратного прокси-сервера с ArcGIS Server или ArcGIS Web Adaptor необходимо знать, что оба эти компонента ожидают увидеть следующее свойство, установленное в заголовке, который был отправлен обратным прокси-сервером:

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

Если в заголовке будет указано это свойство, ArcGIS Server и ArcGIS Web Adaptor будут возвращать запросы на обратный прокси-сервер, URL-адрес которого совпадает с URL обратного прокси-сервера. Так, запрос к Services Directory (https://reverseproxy.domain.com/arcgis/rest/services) ArcGIS Server будет возвращен клиенту в виде того же 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 Esri рекомендует задать свойство заголовка X-Forwarded-Host обратного прокси-сервера, т.к. это является распространенной причиной сбоев при обмене данными. Способ задания заголовка зависит от реализации обратного прокси-сервера. Например, в Apache это достигается с помощью директивы ProxyPreserveHost On, задаваемой в конфигурации:

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

Указания по передаче оригинального заголовка хоста можно найти в документации для вашего прокси-сервера.