Установка 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 SSO.
  • Перед двумя экземплярами Apigee SSO необходимо установить балансировщик нагрузки:
    • Балансировщик нагрузки должен поддерживать привязку файлов cookie, созданных приложением, а сеансовый файл cookie должен называться JSESSIONID.
    • Настройте балансировщик нагрузки для выполнения проверки состояния TCP или HTTP в Apigee SSO. Для TCP используйте URL Apigee SSO:
      http_or_https://edge_sso_IP_DNS:9099

      Укажите порт, заданный Apigee SSO. По умолчанию используется порт 9099.

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

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

Доступ к Apigee SSO по протоколу HTTP

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

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

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

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

SSO_TOMCAT_PORT=9033

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

http://LB_DNS_NAME:9033

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

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

SSO_TOMCAT_PROFILE=SSL_TERMINATION

Вы также можете задать порт, который Apigee SSO использует для доступа по протоколу HTTPS:

SSO_TOMCAT_PORT=9443

Затем настройте балансировщик нагрузки следующим образом:

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

Затем настройте балансировщик нагрузки для пересылки запросов в экземпляр Apigee SSO на порту 9433. В этом случае общедоступный URL Apigee SSO будет выглядеть следующим образом:

https://LB_DNS_NAME:9443

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

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

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

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

    В среде с несколькими центрами обработки данных обычно устанавливают по одному серверу Postgres в каждом центре и настраивают их в режиме репликации "Основной – резервный". В этом примере центр обработки данных 1 содержит основной сервер Postgres, а центр обработки данных 2 – резервный. Подробнее о том, как настроить репликацию "основной – резервный" для Postgres…

  • Одна запись DNS, указывающая на один экземпляр Apigee SSO. Например, вы создаете запись DNS в форме ниже, которая указывает на экземпляр Apigee SSO в центре обработки данных 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 SSO.

При установке Apigee SSO в каждом центре обработки данных вы настраиваете оба центра на использование основного сервера Postgres в центре обработки данных 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 SSO в центре обработки данных 1 перестанет работать, вы можете переключиться на экземпляр Apigee SSO в центре обработки данных 2:

  1. Преобразуйте резервный сервер Postgres в центре обработки данных 2 в основной, как описано в разделе Обработка отказа базы данных PostgreSQL.
  2. Обновите запись DNS, чтобы она указывала my-sso.domain.com на экземпляр Apigee SSO в центре обработки данных 2:
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. Обновите файл конфигурации для Apigee SSO в центре обработки данных 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