Skip To Content

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

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

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

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

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

ProxyPass /arcgis http://gisserver.domain.com:6080/arcgis
ProxyPassReverse /arcgis http://gisserver.domain.com:6080/arcgis

Если вы используете обратный прокси-сервер, и окончание URL вашего сайта отличается от заданного по умолчанию /arcgis (все буквы строчные), вам нужно также установить свойство ArcGIS Server WebContextURL. Это позволит ArcGIS Server построить корректные URL на все ресурсы, которые он направляет конечному пользователю. Чтобы изменить WebContextURL, сделайте следующее:

  1. Войдите в ArcGIS Server Administrator Directory по адресу http://gisserver.domain.com:6080/arcgis/admin как пользователь с правами доступа администратора.
  2. Щелкните система > свойства > обновить.
  3. В окне для текста Свойства вставьте следующий JSON, заменив свой собственный URL ArcGIS Server, который видят пользователи за пределами брандмауэра вашей организации.
    {
       "WebContextURL": "http://gisserver.domain.com/mygis"
    }
  4. Щелкните Обновить.
  5. Перезапустите 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://gisserver.domain.com/arcgis/rest/services вместо http://reverseproxy.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
...

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