安装 Apigee SSO 以实现高可用性

在以下两种情况下,您需要安装多个 Apigee SSO 实例以实现高可用性:

  • 在单个数据中心环境中,安装两个 Apigee SSO 实例以创建高可用性 可用性环境,这表示当某个 Apigee 单点登录发生时,系统继续运行 都会发生故障
  • 在有两个数据中心的环境中,在两个数据中心都安装 Apigee SSO, 如果其中一个 Apigee SSO 模块发生故障,系统就会继续运行。

在同一项目中安装两个 Apigee SSO 模块 数据中心

您需要在一个数据中心的不同节点上部署两个 Apigee SSO 实例, 高可用性在这种情况下:

  • 两个 Apigee SSO 实例都必须连接到同一 Postgres 服务器。Apigee 推荐 使用专用 Postgres 服务器进行 Apigee SSO,而不要 随 Edge 一起安装。
  • 两个 Apigee SSO 实例都必须使用 SSO_JWT_SIGNING_KEY_FILEPATHSSO_JWT_VERIFICATION_KEY_FILEPATH 属性。请参阅安装和配置 Apigee 单点登录 ,进一步了解如何设置这些属性。
  • 您需要在两个 Apigee SSO 实例的前面添加负载平衡器: <ph type="x-smartling-placeholder">
      </ph>
    • 负载平衡器必须支持应用生成的 Cookie 粘性,并且会话 Cookie 必须命名为 JSESSIONID
    • 配置负载平衡器,以便对 Apigee SSO 执行 TCP 或 HTTP 健康检查。对于 TCP, 使用 Apigee SSO 的网址:
      http_or_https://edge_sso_IP_DNS:9099

      指定 Apigee SSO 设置的端口。默认端口为 9099。

      对于 HTTP,请添加 /healthz

      http_or_https://edge_sso_IP_DNS:9099/healthz
    • 某些负载平衡器设置取决于您是否在 Apigee SSO 上启用了 HTTPS。请参阅 。

HTTP 访问权限 到 Apigee SSO

如果您使用的是对 Apigee SSO 的 HTTP 访问权限,请将负载平衡器配置为:

  • 使用 HTTP 模式连接到 Apigee SSO。
  • 通过 Apigee SSO 在同一个端口上进行监听。

    默认情况下,Apigee SSO 会监听端口 9099 上的 HTTP 请求。您可以根据需要使用 SSO_TOMCAT_PORT 用于设置 Apigee 单点登录端口。如果您使用的是 SSO_TOMCAT_PORT 将 Apigee SSO 端口从默认值更改为其他端口,请确保负载平衡器监听该端口 端口。

例如,在每个 Apigee SSO 实例上,您可以通过将以下内容添加到 配置文件:

SSO_TOMCAT_PORT=9033

然后,将负载平衡器配置为监听端口 9033 并将请求转发到 Edge 端口 9033 上的 SSO 实例。在此场景中,Apigee SSO 的公共网址是:

http://LB_DNS_NAME:9033

对 Apigee SSO 的 HTTPS 访问

您可以将 Apigee SSO 实例配置为使用 HTTPS 进行安全通信。在这种情况下,请按照 为 HTTPS 访问配置 Apigee SSO。在启用 HTTPS 的过程中,请在 Apigee SSO 配置文件中设置 SSO_TOMCAT_PROFILE,如下所示:

SSO_TOMCAT_PROFILE=SSL_TERMINATION

(可选)设置 Apigee SSO 用于 HTTPS 访问的端口:

SSO_TOMCAT_PORT=9443

为了确保负载平衡器和 Apigee SSO 之间的通信正常,请按如下方式配置负载平衡器:

  • 使用 TCP 模式(而不是 HTTP 模式)连接到 Apigee SSO。这允许 SSL 连接在负载平衡器上无需终止即可通过。
  • 通过 SSO_TOMCAT_PORT 定义的与 Apigee SSO 相同的端口(例如,9443)。
  • 将请求转发到同一端口 (9443) 上的 Apigee SSO 实例。

确保公开网址反映了负载平衡器的 DNS 和端口设置。在此场景中,Apigee SSO 的公共网址是:

https://LB_DNS_NAME:9443

在多个数据中心安装 Apigee SSO

在多数据中心环境中,您需要在每个数据中心安装一个 Apigee SSO 实例。 然后,通过一个 Apigee SSO 实例处理所有流量。如果该 Apigee SSO 实例发生故障,您可以 切换到第二个 Apigee SSO 实例。

在两个数据中心安装 Apigee SSO 之前,您需要做好以下准备:

  • 主 Postgres 服务器的 IP 地址或域名。

    在多个数据中心环境中,您通常需要在每个数据 中都安装一个 Postgres 服务器 并在主备用复制模式下对其进行配置。在此示例中,data 中心 1 包含 Master Postgres 服务器和数据中心 2 包含待机模式。有关详情,请参阅为 Postgres

  • 指向一个 Apigee SSO 实例的单个 DNS 条目。例如,您创建了一个 下方表单中指向数据中心 1 中的 Apigee SSO 实例的条目:
    my-sso.domain.com => apigee-sso-dc1-ip-or-lb
  • 两个 Apigee SSO 实例都必须使用 SSO_JWT_SIGNING_KEY_FILEPATHSSO_JWT_VERIFICATION_KEY_FILEPATH 属性。请参阅安装和配置 Apigee 单点登录 ,进一步了解如何设置这些属性。

在每个数据中心都安装 Apigee SSO 时,您都需要将两者都配置为使用 Postgres 主实例 数据中心 1:

## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432

您还需要将两个数据中心配置为使用 DNS 条目作为可公开访问的网址:

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

如果数据中心 1 的 Apigee SSO 出现故障,您可以在数据中切换到 Apigee SSO 实例 中心 2:

  1. 按照处理 PostgreSQL 数据库故障切换中的说明,将数据中心 2 中的 Postgres 备用服务器转换为主服务器。
  2. 更新 DNS 记录以将 my-sso.domain.com 指向 中的 Apigee SSO 实例 数据中心 2:
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  3. 更新数据中心 2 中 Apigee SSO 的配置文件,以指向新的 Postgres 主实例 服务器:
    ## Postgres configuration
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  4. 在数据中心 2 中重启 Apigee SSO 以更新其配置:
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso restart