为有状态联结指定后端服务器 UUID

关于此任务

创建后端 Web 应用程序服务器的新联结时,WebSEAL 通常会生成唯一通用标识 (UUID) 来标识此后端服务器。 此 UUID 内部使用,还用于维护有状态联结 (create -s)。

发生初始客户机请求时,WebSEAL 会将 cookie 放置到包含指定后端服务器的 UUID 的客户机系统上。 客户机对相同资源执行更多请求时,cookie 的 UUID 信息确保请求通过一致方式传递到相同后端服务器。

图 1。 有状态联结使用后端服务器 UUID
有状态联结使用后端服务器 UUID

具有联结到多个后端服务器的多个前端 WebSEAL 服务器时,处理有状态联结将变得更为复杂。 通常,前端 WebSEAL 服务器和后端服务器之间的每个联结会为后端服务器生成唯一 UUID。 这意味着,在每个前端 WebSEAL 服务器上,单个后端服务器将具有一个不同的 UUID。

多个前端服务器需要负载均衡机制来在两个服务器之间分布负载。 例如,初始“状态”可以通过使用特定 UUID 的 WebSEAL 服务器 1 建立到后端服务器。

但是,如果之后来自相同客户机的请求使用负载均衡机制通过 WebSEAL 服务器 2 传递,那么“状态”不再存在,除非 WebSEAL 服务器 2 使用相同 UUID 来标识相同后端服务器。 通常,不会发生此情况。

-u 选项允许您向每个前端 WebSEAL 服务器提供特定后端服务器的相同 UUID。

在虚拟主机联结上还支持 -u 选项。

作为示例,考虑两个复制的前端 WebSEAL 服务器,每个服务器具有到两个后端服务器的有状态联结。 在 WebSEAL 服务器 1 和后端服务器 2 之间创建有状态联结时,会生成唯一 UUID (UUID A) 来标识后端服务器 2。 但是,在 WebSEAL 服务器 2 和后端服务器 2 之间创建有状态联结时,会生成不同的新 UUID (UUID B) 来标识后端服务器 2。

图 2。 不同 UUID
不同 UUID

如果来自客户机的后续请求通过 WebSEAL 服务器 2 传递,那么通过 WebSEAL 服务器 1 在客户机和后端服务器 2 之间建立的“状态”将失败。

在下图中,后端服务器 1 被 WebSEAL-1 和 WebSEAL-2 称为 UUID 1。 后端服务器 2 被 WebSEAL-1 和 WebSEAL-2 称为 UUID 2。

图 3。 为有状态联结指定后端服务器 UUID
为有状态联结指定后端服务器 UUID

过程

应用以下创建联结过程期间指定 UUID 的过程:

  1. 创建从 WebSEAL-1 服务器 1 到每个后端服务器的联结。 使用 create -sadd
  2. 列出步骤 1 期间为每个后端服务器生成的 UUID。 使用 show
  3. 创建从 WebSEAL 服务器 2 到每个后端服务器的联结,并指定步骤 2 中标识的 UUID。 使用 create -s -uadd -u