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