Citrix ADC

负载平衡的工作原理

在基本负载平衡设置中,客户端将其请求发送到Citrix ADC设备上配置的虚拟服务器的IP地址。虚拟服务器根据称为负载平衡算法的预设模式将它们分发到负载平衡应用程序服务器。有时,您可能需要为负载平衡虚拟服务器分配一个通配符地址,而不是特定的IP地址。有关在设备上指定全局HTTP端口的说明,请参阅全局HTTP端口

负载平衡基础知识

负载平衡设置包括负载平衡虚拟服务器和多个负载平衡应用程序服务器。虚拟服务器接收传入的客户端请求,使用负载平衡算法选择应用程序服务器,然后将请求转发到选定的应用程序服务器。以下概念图说明了典型的负载平衡部署。另一种变化涉及分配全局 HTTP 端口。

图 1.负载平衡体系结构

负载平衡架构

负载平衡虚拟服务器可以使用多种算法(或方法)来确定如何在其管理的负载平衡服务器之间分配负载。默认负载平衡方法是连接最少的方法,在这种方法中,Citrix ADC设备将每个传入客户端连接转发到当前具有最少活动用户连接的负载平衡应用程序服务器。

在典型Citrix ADC负载平衡设置中配置的实体包括:

  • 负载平衡虚拟服务器。客户端为特定负载平衡网站或应用程序发送连接请求的IP地址,端口和协议组合。如果应用程序可以从互联网访问,则虚拟服务器IP (VIP)地址为公有IP地址。如果只能从局域网或广域网访问该应用程序,则VIP通常是私有(icann不可路由)ip地址。
  • 服务。用于将请求路由到特定负载平衡应用程序服务器的IP地址,端口和协议组合。服务可以是应用程序服务器本身的逻辑表示形式,也可以是在托管多个应用程序的服务器上运行的应用程序的逻辑表示形式。创建服务后,将其绑定到负载平衡虚拟服务器。
  • 服务器对象。一个虚拟实体,使您能够为物理服务器分配名称,而不是通过其IP地址标识服务器。如果创建服务器对象,则可以在创建服务时指定其名称,而不是服务器的IP地址。否则,您必须在创建服务时指定服务器的 IP 地址,并且 IP 地址将成为服务器的名称。
  • 监视器。Citrix ADC设备上跟踪服务并确保服务正常运行的实体。监视器定期探测(或对其分配给的每个服务执行运行状况检查)。如果服务在超时指定的时间内没有响应,并且指定数量的运行状况检查失败,则该服务标记为"向下"。然后,Citrix ADC设备在执行负载平衡时跳过该服务,直到导致服务退出响应的问题得到修复。

负载平衡设置中的虚拟服务器,服务和负载平衡应用程序服务器可以使用互联网协议版本4 (IPv4)或互联网协议版本6 (IPv6)的IP地址。您可以在单个负载平衡设置中混合IPv4和IPv6地址。

有关负载平衡设置中的变化,请参阅以下用例:

了解拓扑

在负载平衡设置中,负载平衡服务器在逻辑上位于客户端和服务器场之间,并管理流向服务器场中服务器的流量。在Citrix ADC设备上,应用程序服务器由称为服务的虚拟实体表示。下图显示了基本负载平衡配置的拓扑。

图 2.基本负载平衡拓扑

负载平衡拓扑

在逻辑示意图中,负载平衡用于管理流向服务器的流量。虚拟服务器选择服务,然后指定该服务处理客户端请求。假设创建Service-HTTP-1和Service-HTTP-2并绑定到名为Vserver-LB-1的虚拟服务器的情况。Vserver-LB-1将客户端请求转发到Service-HTTP-1或Service-HTTP-2。Citrix ADC设备使用最少连接负载平衡方法为每个请求选择服务。下表列出了必须在设备上配置的基本实体的名称和值。

实体 名称 IP地址 端口 协议
虚拟服务器 Vserver-LB-1 10.102.29.60 80 HTTP
服务 Service-HTTP-1 10.102.29.5 80 HTTP
Service-HTTP-2 10.102.29.6 80 HTTP
显示器 默认值

下图显示了上表中描述的负载平衡示例值和强制参数。

图 3.负载平衡实体模型

负载平衡实体模型

使用通配符而不是IP地址和端口

有时,您可能需要使用通配符作为虚拟服务器的IP地址或端口或服务端口。以下情况可能需要使用通配符:

  • 如果Citrix ADC设备配置为透明传递,则无论其发送到哪个IP或端口,都必须接受发送到它的所有流量。
  • 如果一个或多个服务侦听不为人知的端口。
  • 如果一个或多个服务随着时间的推移更改了它们侦听的端口。
  • 如果达到可在单个Citrix ADC设备上配置的IP地址和端口数量的限制。
  • 如果要创建侦听特定虚拟LAN上所有流量的虚拟服务器。

当通配符配置的虚拟服务器或服务接收流量时,Citrix ADC设备将确定实际的IP地址或端口,并为该服务和关联的负载平衡应用程序服务器创建记录。这些动态创建的记录称为动态学习的服务器和服务记录。

例如,防火墙负载平衡配置可以为IP地址和端口使用通配符。如果将通配符TCP服务绑定到这种类型的负载平衡虚拟服务器,则虚拟服务器将接收并处理与任何其他服务或虚拟服务器不匹配的所有TCP流量。

下表介绍了一些不同类型的通配符配置以及必须使用每种配置的时间。

知识产权 端口 协议 说明
TCP 接受发送到Citrix ADC设备上任何IP地址和端口的流量的通用通配符虚拟服务器。使用通配符虚拟服务器时,设备会动态学习每项服务的IP和端口,并在处理流量时创建必要的记录。
TCP 防火墙负载平衡虚拟服务器。您可以将防火墙服务绑定到此虚拟服务器,Citrix ADC设备将流量通过防火墙传递到目标。
IP地址 Tcp、udp和任何 接受发送到指定IP地址的所有流量的虚拟服务器,无论端口如何。您必须将流量重定向到的服务显式绑定到此类虚拟服务器。它不能动态学习它们。
注意:您不会为全局HTTP端口配置服务或虚拟服务器。在这种情况下,您可以将特定端口配置为全局HTTP端口(例如,设置ns参数-Httpport 80)。然后,设备接受与端口号匹配的所有流量,并将其作为HTTP流量处理。设备动态学习并为此流量创建服务。
港口 SSL, SSL_TCP 接受发送到特定端口上任何IP地址的所有流量的虚拟服务器。用于全局透明SSL卸载。通常为相同协议类型的服务执行的所有SSL, HTTP和TCP处理都应用于定向到此特定端口的流量。设备使用端口动态了解必须使用的服务的ip。如果未指定明文,Citrix ADC设备将使用端到端SSL。
港口 不适用 所有其他可以接受到端口流量的虚拟服务器。您不会将服务绑定到这些虚拟服务器。Citrix ADC设备动态学习它们。

注意:如果您已将Citrix ADC设备配置为使用全局(通配符)端口的透明通道,则可能需要打开边缘模式。有关更多信息,请参阅”配置边缘模式”。”

Citrix ADC设备通过首先尝试完全匹配来尝试定位虚拟服务器和服务。如果未找到任何内容,它将继续根据通配符搜索匹配项,按以下顺序排列:

  1. 特定IP地址和特定端口号
  2. 特定IP地址和*(通配符)端口
    • (通配符)ip地址和特定端口
    • (通配符)ip地址和*(通配符)端口

如果设备无法按IP地址或端口号选择虚拟服务器,它会根据请求中使用的协议按以下顺序搜索虚拟服务器:

  1. HTTP
  2. TCP
  3. 任何

配置全局HTTP端口

您不会为全局HTTP端口配置服务或虚拟服务器。而是通过使用set ns参数命令配置特定端口。配置此端口后,Citrix ADC设备接受与端口号匹配的所有流量,并将其作为HTTP流量进行处理,动态学习并为该流量创建服务。

您可以将多个端口号配置为全局HTTP端口。如果要在单个ns参数集命令中指定多个端口号,请用单个空格分隔端口号。如果一个或多个端口已被指定为全局HTTP端口,并且您希望添加一个或多个端口而不删除当前配置的端口,则必须在命令中指定所有端口号(当前端口号和新端口号)。在添加端口号之前,请使用show ns参数命令查看当前配置的端口。

使用命令行界面配置全局HTTP端口

在命令提示符下,键入以下命令以配置全局HTTP端口并验证配置:

set ns param -httpPort  show ns param 

示例1:将端口配置为全局HTTP端口

在此示例中,端口80配置为全局HTTP端口。

set ns param -httpPort 80 Done show ns param全局配置设置:HTTP端口(s): 80最大连接数:0每个连接的最大请求数:0客户端IP插入:DISABLED Cookie版本:0持久性Cookie安全标志:ENABLED ... ...<!——NeedCopy >

示例2:在已配**置一个或多个全局HTTP端口时添加端口

在此示例中,端口8888被添加到全局HTTP端口列表中。端口80已配置为全局HTTP端口。

> show ns param全局配置设置:HTTP端口(s): 80最大连接数:0每个连接的最大请求数:0客户端IP插入:DISABLED Cookie版本:0 Persistence Cookie安全标志:ENABLED最小路径MTU: 576 ... ...Done > set ns param -httpPort 80 8888 Done > show ns param全局配置设置:HTTP port(s): 80,8888最大连接数:0每个连接的最大请求数:0客户端IP插入:DISABLED Cookie版本:0 Persistence Cookie安全标志:ENABLED最小路径MTU: 576 ... ...完成> < !——NeedCopy >

使用配置实用程序配置全局HTTP端口

  1. 导航到”系统" > "设置" > "更改HTTP参数,然后添加HTTP端口号。
负载平衡的工作原理