Skip To Content

Настройка обратного прокси-сервера для работы с ArcGIS Notebook Server

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

Вы можете настроить свой сайт ArcGIS Notebook Server на использование обратного прокси-сервера вашей организации. Является необязательным. Если ваша организация еще не использует обратный прокси-сервер или вы не хотите настраивать его использование для своего сайта ArcGIS Notebook Server, перейдите к настройке своего сайта с порталом.

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

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

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

ProxyPass /notebook https://notebookserver.domain.com/notebook
ProxyPassReverse /notebook https://notebookserver.domain.com/notebook

Задание свойства WebContextURL

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

Примечание:

Воспользуйтесь свойством WebContextURL, чтобы задать URL ArcGIS Notebook Server, соответствующий ArcGIS Web Adaptor (например, /notebook).

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

  1. Откройте ArcGIS Notebook Server Administrator Directory по адресу https://notebookserver.domain.com:11443/arcgis/admin и войдите как пользователь с правами администратора.
  2. Щелкните система > свойства > обновить.
  3. В текстовом окне Свойства вставьте следующий JSON, заменив собственный URL ArcGIS Notebook Server, который видят пользователи за пределами брандмауэра вашей организации.
    {
       "WebContextURL": "https://notebookserver.domain.com/notebook"
    }
  4. Щёлкните Обновить.
  5. Перезапустите ArcGIS Notebook Server. В Linux выполните скрипты stopnotebookserver.sh и startnotebookserver.sh, которые можно найти в установочной директории.

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

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

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

Если в заголовке указан этот параметр, ArcGIS Web Adaptor будет возвращать запросы обратному прокси-серверу, которые соответствуют URL-адресу обратного прокси-сервера. Так, запрос к ArcGIS Notebook Server Services Directory (https://reverseproxy.domain.com/arcgis/rest/services) будет возвращен клиенту в виде того же URL-адреса.

Если это свойство заголовка X-Forwarded-Host установлено не будет, ArcGIS Web Adaptor может возвратить URL внутреннего компьютера, на который был направлен запрос, например, https://notebookserver.domain.com/arcgis/rest/services вместо https://reverseproxy.domain.com/arcgis/rest/services. Это проблематично, т.к. клиенты не смогут получить доступ к этому URL-адресу (обычно выглядит как ошибка 404 в браузере). Также клиент получит некоторые сведения о внутреннем компьютере.

При устранении проблем связи между клиентами и ArcGIS Web Adaptor, рекомендуется задать свойство X-Forwarded-Host заголовка обратного прокси-сервера, т.к. это обычная причина коммуникационных сбоев. Способ задания заголовка зависит от реализации обратного прокси-сервера. Например, в Apache это достигается с помощью директивы ProxyPreserveHost On, задаваемой в конфигурации:

...
ProxyPreserveHost On
ProxyPass /notebook https://notebookserver.domain.com/notebook
ProxyPassReverse /notebook https://notebookserver.domain.com/notebook
...

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

Пример: Настройка Apache и Tomcat с ArcGIS Notebook Server

Вы можете настроить для обратного прокси-сервера с ArcGIS Notebook Server любой веб-сервер. Ниже описаны действия, которые необходимо выполнить для настройки для обратного прокси-сервера Apache HTTP Server и Apache Tomcat. Это только один из вариантов конфигурации обратного прокси-сервера, а не обязательные инструкции.

В этом примере рабочего процесса используются следующие программы и версии, установленные на том же компьютере, что и ArcGIS Notebook Server:

  • Red Hat Enterprise Linux Server 7.5
  • Apache HTTP Server , httpd 2.4.6
  • Apache Tomcat 9.0.20 / OpenJDK 1.8.0

Эти компоненты программного обеспечения могут работать и в распределенной архитектуре - с ArcGIS Notebook Server, Apache HTTP Server и Apache Tomcat на отдельных компьютерах.

Следующие шаги нужно выполнить после того, как будут установлены и настроены ArcGIS Notebook Server и Mirantis Container Runtime, а экземпляр ArcGIS Web Adaptor будет установлен на веб-сервере Java, но не был настроен.

  1. Установите Tomcat для его запуска через порт 8080 через протокол Apache JServ Protocol (AJP), который включен по умолчанию.
  2. Поскольку порт 8443 по умолчанию в Tomcat не включен, включите SSL и добавьте коннектор для порта 8443.

    Это позволит создать сертификат SSL и отредактировать файл конфигурации Tomcat для добавления коннектора. С точки зрения обеспечения безопасности лучше всего включить только TLS версии 1.2.

    ...
    sslProtocol="TLS" SSLProtocol="TLSv1.2"
    ...

  3. Разверните файл arcgis.war для имеющегося ArcGIS Web Adaptor (Java Platform) в Tomcat.

    К примеру, URL ArcGIS Web Adaptor - это /nbs.

  4. Установите Apache HTTP Server .

    В этом случае будет использоваться менеджер пакетов yum. Возможности SSL также устанавливаются в yum.

    yum install httpd -y
    yum install mod_ssl -y

  5. Проверьте ваш сертификат SSL для Apache HTTP Server в файле ssl.conf.
  6. Измените файл Apache httpd.conf, используя правила прокси (как обсуждалось в предыдущем разделе) для прокси-вызовов ArcGIS Web Adaptor на порт AJP Tomcat.

    ProxyPass /nbs ajp://myserver.acme.com:8009/nbs
    ProxyPassReverse /nbs ajp://myserver.acme.com:8009/nbs

  7. Для файла ssl.conf Apache HTTP Server используйте правила прокси для SSL прокси-вызовов ArcGIS Web Adaptor к порту AJP Tomcat. Также важно проксировать запросы WebSocket, которые используются ArcGIS Notebook Server. Если запросы WebSocket не обрабатываются должным образом, ArcGIS Notebooks не будут корректно открываться.

    SSLProxyEngine On
    # Use RewriteEngine to handle WebSocket connection upgrades
    RewriteEngine On
    RewriteCond %{HTTP:Connection} Upgrade [NC]
    RewriteCond %{HTTP:Upgrade} websocket [NC]
    RewriteRule /(.*) wss://myserver.acme.com:8443/$1 [P,L]
    <Location "/nbs">
        ProxyPreserveHost On
        ProxyPass ajp://myserver.acme.com:8009/nbs
        ProxyPassReverse ajp://myserver.acme.com:8009/nbs
    </Location>

  8. Перезапустите сервис Apache HTTP Server , чтобы изменения конфигурации вступили в силу.
  9. Настройте ArcGIS Web Adaptor с ArcGIS Notebook Server.