Балансировщики нагрузки и обратные прокси

Балансировщики нагрузки и обратные прокси являются распространенными технологиями в современных веб-приложениях и архитектурах и могут развертываться независимо или в комбинированной конфигурации. В этом разделе представлен обзор этих технологий, а также комментарии о соответствующих сценариях использования в системах ArcGIS и соответствующих возможностях, которые эти технологии предоставляют.

  • Балансировщик нагрузки — это обычно аппаратный или программный компонент, который распределяет клиентские запросы или рабочие нагрузки между несколькими вычислительными ресурсами, такими как физические серверы, виртуальные серверы или кластеры. Балансировка нагрузки помогает сбалансировать загрузку системы, снизить риски, упростить предоставление услуг и их развитие, а также повысить безопасность серверов.
  • Обратный прокси-сервер — это программный или аппаратный компонент, который принимает запросы HTTPS, например от внешнего клиента, и направляет эти запросы на правильные внутренние ресурсы, URL-адреса или сервисы. Обратные прокси-серверы часто используются для маршрутизации внешних запросов, поступающих по одному URL-адресу, на другой внутренний URL-адрес или в другую систему, которая в противном случае была бы недоступна для этого внешнего клиента. Обратные прокси-серверы также часто используются для передачи трафика с известных портов интерфейсной сети, таких как HTTPS-запросы на порт 443, на другие частные порты в серверной системе. Обратные прокси-серверы обеспечивают уровень безопасности, деидентификации и потенциально логики фильтрации запросов между клиентом, делающим запрос, и внутренним сервером, отвечающим на запрос.

Способы реализации

Многие системы ArcGIS реализуют балансировку нагрузки в сочетании с использованием обратного прокси. К распространенным способам реализации относятся:

  • Балансировка нагрузки клиентских запросов, отправляемых к компонентам ArcGIS Enterprise для пользователей, таким как портал ArcGIS Enterprise и интегрированные сайты ArcGIS Server, включая ArcGIS Image Server, Workflow Manager Server и др.
  • Балансировка нагрузки запросов пользователей к статическому содержимому приложения, такому как ресурсы веб-приложения HTML, JavaScript и CSS, на нескольких веб-серверах
  • Запросы балансировки нагрузки, полученные по протоколу HTTPS и отправленные на порт 443 серверному сервису, прослушивающему запросы HTTPS на порте 6443, например ArcGIS Server.

Esri предоставляет устанавливаемый программный компонент ArcGIS, ArcGIS Web Adaptor, для обеспечения балансировки нагрузки и функциональности обратного прокси в развертываниях ArcGIS Enterprise. Web Adaptor – это не единственный вариант для проектирования систем ArcGIS Enterprise с использованием балансировщика нагрузки и обратного прокси, но это распространенный шаблон, предлагающий решение, которое поддерживается службой технической поддержки Esri. Также может быть использована внешняя аппаратная или программная подсистема балансировки нагрузки, в зависимости от предпочтений и технических требований. Тип рабочей нагрузки и частота запроса помогут определить, какой тип балансировщика нагрузки может подойти для ваших потребностей. Ознакомьтесь с разделом Развертывание нескольких компьютеров с помощью стороннего балансировщика нагрузки для получения указаний, связанных с вашей конкретной версией ArcGIS и операционной системой.

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

Внешние реализации

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

  • Программное обеспечение веб-сервера, такое как Apache Tomcat, Apache httpd или Nginx, может использоваться для передачи обратных прокси-запросов от клиентов к конечным точкам ArcGIS.
  • Можно использовать встроенные в облако балансировщики нагрузки, такие как Azure Application Gateway, Amazon Elastic Load Balancer или Application Load Balancer или Google Cloud Load Balancer.
  • Другие выделенные системы балансировщиков нагрузки и прокси, такие как F5 BIG-IP, Citrix NetScaler или Barracuda, которые часто представляют собой аппаратные устройства, обеспечивающие балансировку нагрузки и обратный прокси для множества различных приложений, а также обеспечивают поддержку аутентификации, обнаружения вторжений, функций, подобных брандмауэру веб-приложений, и других вариантов использования.

По мере того, как организации переходили от традиционных локальных архитектур, где демилитаризованная зона (ДМЗ) чаще всего использовалась для предоставления интернет-клиентам доступа к сервисам и конечным точкам, к облачным архитектурам, где облачные сервисы обеспечивают эту функциональность в большинстве случаев, условия и методы использования архитектуры, связанные с обратными прокси-серверами и балансировкой нагрузки, также менялись.

Преимущества

Эти технологии обеспечивают такие преимущества, как масштабируемость, отказоустойчивость и безопасность.

Масштабируемость

Система ArcGIS может масштабироваться для поддержки как небольших, так и крупных развертываний. Чтобы приспособиться к растущим размерам развертывания, ArcGIS может использовать множество методов и технологий балансировки нагрузки. Алгоритмы балансировки нагрузки, используемые для диспетчеризации клиентских запросов, могут варьироваться от простых круговых подходов до более сложных алгоритмов, учитывающих такие факторы, как текущее количество подключений, использование хостинга или реальное время отклика.

Балансировщик нагрузки способствует повышению производительности, распределяя нагрузку между несколькими компьютерами и соответствующими ресурсами. В примере с отказоустойчивостью балансировщики нагрузки ArcGIS Web Adaptor распределяют запросы ГИС-сервера между двумя хост-серверами ArcGIS Enterprise. Если в системе много пользователей, выполняющих схожие рабочие процессы, требующие значительного объема обработки, например рабочий процесс редактирования, включающий длительные транзакции с интенсивным использованием процессора, балансировщик нагрузки может обеспечить балансировку этих запросов между доступным оборудованием, в то время как рабочие процессы с сильно изменяющимися требованиями к обработке могут выиграть от разделения рабочей нагрузки, а не балансировки нагрузки.

Отказоустойчивость

Балансировка нагрузки также обеспечивает отказоустойчивость конфигураций ArcGIS за счет распределения запросов по сайту или кластеру компьютеров, которые имеют одну и ту же роль. Например, если отказоустойчивость настроена в развертывании ArcGIS Enterprise на нескольких компьютерах, балансировщик нагрузки (ArcGIS Web Adaptor) поочередно отправляет запросы на основной и дополнительный серверы хостинга ArcGIS, как показано.

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

Метод и эффективность этой возможности зависят от балансировщика нагрузки. Некоторые аппаратные балансировщики нагрузки имеют богатые алгоритмы, которые позволяют им подстраиваться на лету в зависимости от нагрузки или времени отклика. Другие работают по простому циклическому списку, где список может периодически обновляться, чтобы отражать только исправные машины.

load-balancing-2.png

Повышенная безопасность

Обратный прокси-сервер, как правило, предоставляет доступ к одному IP-адресу в Интернете или внутренней сети для определенной системы и распределяет запросы к нужному ресурсу. Это значительно снижает риски в сфере безопасности, поскольку внутренняя топология сети и систем скрыта, а количество точек взлома уменьшается в случае атаки. Этот метод также упрощает предоставление и потребление услуг за счет предоставления единой точки доступа к системе. Большинство организаций используют прокси-серверы, чтобы их сайты не подвергались атакам извне.

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

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

Соображения и рекомендации

Общие рекомендации по реализации балансировки нагрузки и обратных прокси включают в себя:

  • Реализуйте балансировку нагрузки для распределения трафика клиентской рабочей нагрузки между несколькими вычислительными ресурсами для обеспечения масштабируемости и отказоустойчивости с помощью ArcGIS.
  • В большинстве развертываний ArcGIS Enterprise рекомендуется и часто требуется архитектурный компонент ArcGIS Web Adaptor, который предоставляет возможности как балансировщика нагрузки, так и обратного прокси-сервера в едином, простом в развертывании приложении. ArcGIS Web Adaptor также предоставляет простой способ реализации аутентификации на веб-уровне для ArcGIS Enterprise.
  • Если у вас есть расширенные требования к балансировке нагрузки, рассмотрите возможность внедрения внешнего балансировщика нагрузки, который предоставляет необходимые возможности в дополнение к ArcGIS Web Adaptor.
  • При развертывании общедоступной системы используйте функциональный обратный прокси-сервер, чтобы обеспечить дополнительную безопасность развертывания ArcGIS.
Примечание:

Для многих других приложений или систем завершение TLS в подсистеме балансировки нагрузки является распространенной архитектурой приложений. Для систем ArcGIS завершение TLS обычно не рекомендуется, а в случае Portal for ArcGIS не поддерживается. Поддержание сквозных TLS-соединений обеспечивает более высокий уровень безопасности и гарантирует, что запросы пользователей и данные не будут видны злоумышленнику в сети.

Рекомендации по балансировке нагрузки

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

  • Программные компоненты ArcGIS включают в себя различные URL-адреса “проверки работоспособности”, которые можно использовать для запросов на проверку работоспособности, отправляемых большинством балансировщиков нагрузки, чтобы определить, следует ли оставлять сервер в “целевом пуле” этого балансировщика нагрузки. Запросы healthCheck должны давать положительный ответ только в том случае, если система работает правильно и может принимать запросы.
  • Большинство балансировщиков нагрузки могут работать в нескольких различных режимах, включая круговой режим, который отправляет запросы случайным образом на серверы в пуле доступных бэкендов. Другие, более «интеллектуальные» подходы к балансировке нагрузки могут учитывать тип или размер запроса, нагрузку на сервер на основе вычислений или сетевого трафика, или другие факторы.
  • Понимание того, как запросы пользователей преобразуются в нагрузку на сервер, может быть сложной и субъективной темой. Внимательно рассмотрите преимущества более интеллектуальных подходов к балансировке нагрузки, отойдя от обычного циклического подхода.
  • Привязка сеанса — это распространенный параметр балансировщика нагрузки, который использует либо исходный IP-адрес, либо файл cookie клиента, чтобы гарантировать, что запросы от одного и того же пользователя (воспринимаемые балансировщиком нагрузки) отправляются на один и тот же сервер. Эта функциональность может быть удобна в сценариях, где несколько разрозненных сайтов или функций ArcGIS Server размещаются за одним и тем же балансировщиком нагрузки, и обеспечение возврата пользовательских запросов на один и тот же сервер может иметь функциональные преимущества и преимущества в производительности.

Рекомендации по обратным прокси

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

  • Используйте согласованные URL-адреса. Системы ArcGIS в значительной степени ссылаются сами на себя, с такими ресурсами, как приложения, карты или сервисы, которые ссылаются на части системы, используя URL-адреса элементов, сервисов или других компонентов. Эти URL-адреса сохраняются в конфигурациях, поэтому использование согласованных URL-адресов способствует стабильности системы и переносимости содержимого. Изменение внешнего URL-адреса системы — это нарушающий работу процесс, который не поддерживается в текущем программном обеспечении.
  • Некоторые обратные прокси могут по умолчанию использовать несколько частей URL для ссылки на систему ArcGIS, например:

    • https://centralhost.domain.com/systems/gis/rest/services

Обратите внимание, что использование подобных составных URL-адресов не поддерживается компонентами ArcGIS Enterprise, “веб-контекст” или имя веб-адаптера должны быть первым компонентом URL после имени хоста в URL.

  • ArcGIS лучше всего работает с прозрачными конфигурациями обратного прокси, где запросы отправляются в серверную часть без проверки или уровня аутентификации или проверки запросов. Другие методы обратного прокси, которые перехватывают, корректируют или влияют на трафик, могут привести к функциональным проблемам и проблемам с производительностью систем ArcGIS, и их следует тщательно изучить перед внедрением.
Top