4.17. 为每个控制器上的 Identity 服务(keystone)使用代理持久性


mod_auth_mellon 建立会话时,它无法在多个服务器间共享其状态信息。由于 SAML 使用的重定向数量涉及状态信息,因此同一服务器必须处理所有事务。因此,您必须配置 HAProxy,每次将每个客户端请求定向到同一服务器。

HAProxy 可以通过两种方式将客户端绑定到同一服务器:

关联性
当使用应用层下的层信息将客户端请求固定到单个服务器时,请使用关联性。
Persistence
当应用层信息将客户端绑定到单个服务器粘性会话时,请使用持久性。持久性比关联性更准确。使用以下步骤实现持久性。

HAProxy cookie 指令命名 Cookie 及其参数来持久性。HAProxy 服务器指令有一个 Cookie 选项,它将 Cookie 的值设置为服务器的名称。如果传入请求没有识别后端服务器的 Cookie,则 HAProxy 会根据配置的平衡算法选择服务器。

流程

  1. 要在 /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg 配置文件的 keystone_public 块中启用持久性,请添加以下行:

    cookie SERVERID insert indirect nocache
    Copy to Clipboard Toggle word wrap

    此设置指出 SERVERID 是持久性 Cookie 的名称。

  2. 编辑每个 server 行并添加 cookie <server-name> 作为附加选项:

    server controller-0 cookie controller-0
    server controller-1 cookie controller-1
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat