ADC

自定义服务器 ID 持久性

在自定义服务器 ID 持久化方法中,客户端请求中指定的服务器 ID 用于维护持久性。要使这种类型的持久性发挥作用,必须先在服务上设置服务器 ID。NetScaler 设备检查客户端请求的 URL 并连接到与指定服务器 ID 关联的服务器。服务提供商必须确保用户知道在其对特定服务的请求中要提供的服务器 ID。

例如,如果站点提供来自不同服务器的不同类型的数据(如图像、文本和多媒体),则可以为每个服务器分配一个服务器 ID。在 NetScaler 设备上,为相应的服务指定这些服务器 ID,并在相应的负载平衡虚拟服务器上配置自定义服务器 ID 持久性。发送请求时,客户端将服务器 ID 插入到指明所需数据类型的 URL 中。

要配置自定义服务器 ID 持久性,请执行以下操作:

  • 在负载平衡设置中,为要使用用户定义的服务器 ID 来保持持久性的每项服务分配一个服务器 ID。允许使用字母数字服务器 ID。
  • 使用默认语法表达式语言指定规则,检查服务器 ID 的 URL 查询并将流量转发到相应的服务器。
  • 配置自定义服务器 ID 持久性。

注意:持久性超时值不影响自定义服务器 ID 持久性类型。对永久客户机的最大数量没有限制,因为这种持久性类型不存储任何客户端信息。

示例:

在包含两个服务的负载平衡设置中,将服务器 ID 2345-photo-56789 分配给 Service-1,将服务器 ID 2345-drawing-abb123 分配给 Service-2。将这些服务绑定到名为 Web11 的虚拟服务器。

set service Service-1 10.102.29.5 -CustomServerID 2345-photo-56789

set service Service-2 10.102.29.6 -CustomServerID 2345-drawing-abb123
<!--NeedCopy-->

在虚拟服务器 Web11 上,启用自定义服务器 ID 持久化。

创建以下表达式,以便检查所有包含字符串“sid=”的 URL 查询。

HTTP.REQ.URL.AFTER_STR(“sid=”)

示例:

set lb vserver Web11 -persistenceType customserverID -rule "HTTP.REQ.URL.AFTER_STR("sid=")"

bind lb vserver Web11 Service-[1-2]
<!--NeedCopy-->

当客户端向 Web11 的 IP 地址发送带有以下 URL 的请求时,设备会将请求定向到 Service-2 并遵循持久性。

示例:

http://www.example.com/index.asp?&sid=2345-drawing-abb123

有关默认语法策略表达式的更多信息,请参阅 策略配置和参考

使用配置实用程序配置自定义服务器 ID 持久性

  1. 导航到流量管理 > 负载平衡 > 服务
  2. 打开服务并设置服务器 ID。
  3. 导航到“流量管理”>“负载平衡”>“虚拟服务器”,然后打开虚拟服务器。
  4. 在“高级设置”中,选择“持久性”。
  5. 选择客户名称,然后指定一个表达式。
自定义服务器 ID 持久性