Skip To Content

Настройка обратного прокси-сервера с помощью ArcGIS Server

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

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

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

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

Примечание:

Вы должны убедиться, что контекстное имя обратного прокси-сервера переходит только на один уровень URL глубже. Например, у вас может быть адрес URL обратного прокси-сервера, такой как https://proxy.domain.com/enterprise, но у вас не может быть адреса URL обратного прокси-сервера типа https://proxy.domain.com/myorg/enterprise.

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

Если обмен данными осуществляется через 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 на каждом ГИС-сервере сайта. В Linux это выполняется посредством скриптов stopserver и startserver, которые можно найти в установочной директории каждого компьютера.

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

Перед развертыванием обратного прокси-сервера для использования с ArcGIS Server или ArcGIS Web Adaptor, рекомендуется настроить заголовки обратного прокси-сервера для обеспечения связи.

Обратный прокси-сервер должен иметь возможность определять перенаправления (коды HTTP 301 или 302). Обновите заголовок Location, чтобы гарантировать, что полное доменное имя (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
...

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