Установка Apigee SSO для обеспечения высокой доступности

Вы устанавливаете несколько экземпляров Apigee SSO для обеспечения высокой доступности в двух сценариях:

  • В среде с одним центром обработки данных установите два экземпляра Apigee SSO, чтобы создать среду с высокой доступностью. Это означает, что система продолжит работать, если один из модулей Apigee SSO выйдет из строя.
  • В среде с двумя центрами обработки данных установите Apigee SSO в обоих центрах, чтобы система продолжала работать, если один из модулей Apigee SSO выйдет из строя.

Установите два модуля Apigee SSO в одном центре обработки данных.

Вы развертываете два экземпляра Apigee SSO на разных узлах в одном центре обработки данных, чтобы обеспечить высокую доступность. В этом случае:

  • Оба экземпляра Apigee SSO должны быть подключены к одному серверу Postgres. Apigee рекомендует использовать для Apigee SSO отдельный сервер Postgres, а не тот, который вы установили с Edge.
  • Оба экземпляра Apigee SSO должны использовать одну и ту же пару ключей JWT, как указано в свойствах SSO_JWT_SIGNING_KEY_FILEPATH и SSO_JWT_VERIFICATION_KEY_FILEPATH в файле конфигурации. Подробнее о том, как задать эти свойства, рассказывается в статье Как установить и настроить систему единого входа Apigee.
  • Перед двумя экземплярами Apigee SSO необходимо установить балансировщик нагрузки:
    • Балансировщик нагрузки должен поддерживать привязку файлов cookie, созданных приложением, а файл cookie сеанса должен называться JSESSIONID.
    • Настройте балансировщик нагрузки для выполнения проверки работоспособности TCP или HTTP в системе единого входа Apigee. Для TCP используйте URL системы единого входа Apigee:
      http_or_https://edge_sso_IP_DNS:9099

      Укажите порт, заданный системой единого входа Apigee. Порт по умолчанию – 9099.

      Для HTTP добавьте /healthz:

      http_or_https://edge_sso_IP_DNS:9099/healthz
    • Некоторые настройки балансировщика нагрузки зависят от того, включили ли вы HTTPS в системе единого входа Apigee. Дополнительную информацию вы найдете в разделах ниже.

Доступ по HTTP к системе единого входа Apigee

Если вы используете доступ по HTTP к системе единого входа Apigee, настройте балансировщик нагрузки следующим образом:

  • Используйте режим HTTP для подключения к системе единого входа Apigee.
  • Прослушивайте тот же порт, что и Apigee SSO.

    По умолчанию Apigee SSO прослушивает HTTP-запросы на порту 9099. При необходимости вы можете использовать SSO_TOMCAT_PORT, чтобы задать порт системы единого входа Apigee. Если вы использовали SSO_TOMCAT_PORT, чтобы изменить порт системы единого входа Apigee, заданный по умолчанию, убедитесь, что балансировщик нагрузки прослушивает этот порт.

Например, на каждом экземпляре Apigee SSO вы устанавливаете порт 9033, добавляя в файл конфигурации следующее:

SSO_TOMCAT_PORT=9033

Затем вы настраиваете балансировщик нагрузки на прослушивание порта 9033 и переадресацию запросов к экземпляру Edge SSO на порт 9033. Общедоступный URL системы единого входа Apigee в этом сценарии:

http://LB_DNS_NAME:9033

Доступ по HTTPS к Apigee SSO

Вы можете настроить экземпляры системы единого входа Apigee на использование HTTPS для безопасного обмена данными. В этом случае следуйте инструкциям в статье Как настроить систему единого входа Apigee для доступа по протоколу HTTPS. В рамках процесса включения HTTPS задайте значение SSO_TOMCAT_PROFILE в файле конфигурации системы единого входа Apigee, как показано ниже.

SSO_TOMCAT_PROFILE=SSL_TERMINATION

При необходимости задайте порт, используемый Apigee SSO для доступа по HTTPS:

SSO_TOMCAT_PORT=9443

Чтобы обеспечить правильный обмен данными между балансировщиком нагрузки и системой единого входа Apigee, настройте балансировщик нагрузки следующим образом:

  • Для подключения к Apigee SSO используйте режим TCP, а не HTTP. Это позволяет SSL-подключениям проходить без завершения в балансировщике нагрузки.
  • Прослушивайте тот же порт, что и система единого входа Apigee, как определено в SSO_TOMCAT_PORT (например, 9443).
  • Перенаправлять запросы к экземпляру системы единого входа Apigee на тот же порт (9443).

Убедитесь, что общедоступный URL отражает настройки DNS и порта балансировщика нагрузки. Общедоступный URL системы единого входа Apigee в этом сценарии:

https://LB_DNS_NAME:9443

Как установить Apigee SSO в нескольких центрах обработки данных

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

Прежде чем устанавливать Apigee SSO в двух центрах обработки данных, вам потребуется следующее:

  • IP-адрес или доменное имя основного сервера Postgres.

    В среде с несколькими центрами обработки данных обычно устанавливается по одному серверу Postgres в каждом центре обработки данных и настраивается режим репликации Master-Standby. В этом примере центр обработки данных 1 содержит основной сервер Postgres, а центр обработки данных 2 – резервный. Дополнительную информацию можно найти в статье Как настроить репликацию Master-Standby для Postgres.

  • Одна запись DNS, указывающая на один экземпляр системы единого входа Apigee. Например, вы создаете запись DNS в форме ниже, которая указывает на экземпляр системы единого входа Apigee в центре обработки данных 1:
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • Оба экземпляра Apigee SSO должны использовать одну и ту же пару ключей JWT, как указано в свойствах SSO_JWT_SIGNING_KEY_FILEPATH и SSO_JWT_VERIFICATION_KEY_FILEPATH в файле конфигурации. Подробнее о том, как задать эти свойства, рассказывается в статье Как установить и настроить систему единого входа Apigee.

При установке Apigee SSO в каждом центре обработки данных вы настраиваете оба для использования Postgres Master в центре обработки данных 1:

## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432

Вы также настраиваете оба центра обработки данных на использование записи DNS в качестве общедоступного URL:

# Externally accessible URL of Apigee SSO
SSO_PUBLIC_URL_HOSTNAME=my-sso.domain.com
# Default port is 9099.
SSO_PUBLIC_URL_PORT=9099

Если система единого входа Apigee в центре обработки данных 1 выйдет из строя, вы сможете переключиться на экземпляр системы единого входа Apigee в центре обработки данных 2:

  1. Преобразуйте резервный сервер Postgres в центре обработки данных 2 в основной, как описано в разделе Обработка отказа базы данных PostgreSQL.
  2. Обновите запись DNS, чтобы указать my-sso.domain.com на экземпляр системы единого входа Apigee в центре обработки данных 2:
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. Обновите файл конфигурации для системы единого входа Apigee в центре обработки данных 2, чтобы он указывал на новый главный сервер Postgres в центре обработки данных 2:
    ## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  4. Перезапустите Apigee SSO в центре обработки данных 2, чтобы обновить его конфигурацию:
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso restart