负载均衡器可实现持久性,将所有相关连接定向到同一服务器,从而确保有状态应用程序的稳定性。为了满足不同类型的应用程序需求,支持不同类型的持久性。

某些应用程序会保持服务器状态,如购物车。此类状态可能基于客户端并由客户端 IP 地址或根据 HTTP 会话标识。在处理来自同一客户端或 HTTP 会话的后续相关连接时,应用程序可能会访问或修改此状态。

源 IP 持久性配置文件基于源 IP 地址跟踪会话。客户端请求连接到支持源地址持久性的虚拟服务器时,负载均衡器将检查该客户端之前是否曾建立连接;如果是,则将客户端返回给同一服务器。否则,可以根据池负载均衡算法选择服务器池成员。源 IP 持久性配置文件由第 4 层和第 7 层虚拟服务器使用。

Cookie 持久性配置文件将插入唯一的 Cookie,以便在客户端首次访问站点时标识会话。客户端在后续请求中转发 HTTP Cookie,并且负载均衡器使用该信息提供 Cookie 持久性。第 7 层虚拟服务器只能使用 Cookie 持久性配置文件。

通用持久性配置文件会根据 HTTP 请求中的 HTTP 标头、Cookie 或 URL 来支持持久性。因此,当会话 ID 是 URL 的一部分时,配置文件将支持应用程序会话持久性。该配置文件未直接与虚拟服务器关联。在配置用于请求转发和响应重写的负载均衡器规则时,可以指定该配置文件。

过程

  1. 从浏览器中,使用管理员特权登录到 NSX Manager,网址为 https://<nsx-manager-ip-address>。
  2. 选择网络 > 负载均衡 > 配置文件 > 持久性 > 添加持久性配置文件
  3. 选择源 IP 以添加源 IP 持久性配置文件并输入配置文件详细信息。
    您也可以接受默认源 IP 配置文件设置。
    选项 说明
    名称和说明 输入源 IP 持久性配置文件的名称和描述。
    共享持久性 切换该按钮以共享持久性,使与此配置文件关联的所有虚拟服务器均可共享持久性表。

    如果与虚拟服务器关联的“源 IP”持久性配置文件中未启用持久性共享,则与配置文件关联的每个虚拟服务器都将维护一个专用持久性表。

    持久性条目超时 输入持久性到期时间(秒)。

    负载均衡器持久性表维护用来记录客户端请求被定向到同一服务器的条目。

    从新客户端 IP 首次连接时,将根据负载均衡算法选择池成员以均衡负载。NSX 会将该持久性条目存储在 LB 持久性表中,该表可通过以下 CLI 命令在托管活动 T1-LB 的 Edge 节点上查看:get load-balancer <LB-UUID> persistence-tables

    • 当存在从该客户端到 VIP 的连接时,将保留该持久性条目。
    • 如果不再有从该客户端到 VIP 的连接,该持久性条目将启动在“持久性条目超时”值中指定的定时器倒计时。如果在定时器到期之前没有从该客户端到 VIP 的新连接,则会删除该客户端 IP 的持久性条目。如果该客户端在删除持久性条目后又重新连接,则会根据负载均衡算法重新选择池成员以均衡负载。
    已满时清除条目

    如果流量很大,则较大的超时值可能会导致持久性表快速填满。如果启用此选项,则会删除最早的条目以接受最新条目。

    如果禁用此选项,则当源 IP 持久性表已满时,会拒绝新的客户端连接。

    HA 持久性镜像 切换该按钮以将持久性条目同步到 HA 对等项。如果启用 HA 持久性镜像,则在发生负载均衡器故障切换时,会保持客户端 IP 持久性。
    标记 输入标记可使搜索变得更容易。

    可以指定一个标记以设置标记的范围。

  4. 选择 Cookie 持久性配置文件,然后输入配置文件详细信息。
    选项 说明
    名称和说明 输入 Cookie 持久性配置文件的名称和描述。
    共享持久性 切换该按钮以在与相同池成员关联的多个虚拟服务器之间共享持久性。

    Cookie 持久性配置文件将插入格式为 <名称>.<配置文件 ID>.<池 ID> 的 Cookie。

    如果与虚拟服务器关联的 Cookie 持久性配置文件中未启用持久性共享,则会使用每个虚拟服务器的专用 Cookie 持久性并由池成员对其进行限定。负载均衡器将插入格式为 <名称>.<虚拟服务器 ID>.<池 ID> 的 Cookie。

    Cookie 模式 从下拉菜单中选择一个模式。
    • INSERT - 添加唯一的 Cookie 以标识会话。
    • PREFIX - 附加到现有 HTTP Cookie 信息。
    • REWRITE - 重写现有 HTTP Cookie 信息。
    Cookie 名称 输入 Cookie 名称。
    Cookie 域 输入域名。

    HTTP Cookie 域只能在 INSERT 模式中配置。

    Cookie 回退 切换该按钮,以便在 Cookie 指向处于 DISABLED 或 DOWN 状态的服务器时拒绝客户端请求。

    如果 Cookie 指向处于 DISABLED 或 DOWN 状态的服务器,请选择一个新的服务器来处理客户端请求。

    Cookie 路径 输入 Cookie URL 路径。

    HTTP Cookie 路径只能在 INSERT 模式中设置。

    Cookie 加密 切换该按钮以禁用加密。

    禁用乱码时,Cookie 服务器 IP 地址和端口信息采用明文形式。加密 Cookie 服务器 IP 地址和端口信息。

    Cookie 类型 从下拉菜单中选择 Cookie 类型。

    会话 Cookie - 未存储。关闭浏览器后将丢失。

    持久性 Cookie - 由浏览器存储。关闭浏览器时不会丢失。

    最长空闲时间 输入 Cookie 过期之前 Cookie 类型可以处于空闲状态的时间(秒)。
    最长 Cookie 保留时间 对于会话 Cookie 类型,请输入 Cookie 的可用时间(秒)。
    标记 输入标记可使搜索变得更容易。

    可以指定一个标记以设置标记的范围。

  5. 选择通用以添加通用持久性配置文件,然后输入配置文件详细信息。
    选项 说明
    名称和说明 输入源 IP 持久性配置文件的名称和描述。
    共享持久性 切换该按钮以在虚拟服务器之间共享配置文件。
    持久性条目超时 输入持久性到期时间(秒)。

    负载均衡器持久性表维护用来记录客户端请求被定向到同一服务器的条目。

    从新客户端 IP 首次连接时,将根据负载均衡算法选择池成员以均衡负载。NSX 会将该持久性条目存储在 LB 持久性表中,该表可通过以下 CLI 命令在托管活动 T1-LB 的 Edge 节点上查看:get load-balancer <LB-UUID> persistence-tables

    • 当存在从该客户端到 VIP 的连接时,将保留该持久性条目。
    • 如果不再有从该客户端到 VIP 的连接,该持久性条目将启动在“持久性条目超时”值中指定的定时器倒计时。如果在定时器到期之前没有从该客户端到 VIP 的新连接,则会删除该客户端 IP 的持久性条目。如果该客户端在删除持久性条目后又重新连接,则会根据负载均衡算法重新选择池成员以均衡负载。
    HA 持久性镜像 切换该按钮以将持久性条目同步到 HA 对等项。
    标记 输入标记可使搜索变得更容易。

    可以指定一个标记以设置标记的范围。