Citrix ADC

保护内容切换设置不发生故障

当内容切换虚拟服务器DOWN或无法处理过大的流量或其他原因时,内容切换可能会失败。为了减少失败的机会,您可以采取以下措施来保护内容切换设置不发生失败:

配置备份虚拟服务器

如果主内容切换虚拟服务器被标记为DOWN或DISABLED, Citrix ADC设备可以将请求定向到备份内容切换虚拟服务器。它还可以向客户端发送关于站点中断或维护的通知消息。备份内容切换虚拟服务器是一个代理,对客户端是透明的。

在配置备份虚拟服务器时,可以指定配置参数Disable Primary When Down,以确保当主虚拟服务器恢复时,它仍然是辅助服务器,直到手动强制它接管为主服务器。如果您希望确保保留对备份服务器上数据库的任何更新,从而使您能够在恢复主虚拟服务器之前同步数据库,那么它将非常有用。

当创建内容切换虚拟服务器或修改已有内容切换虚拟服务器的可选参数时,可以配置备份内容切换虚拟服务器。您也可以为已有的备份内容切换虚拟服务器配置备份内容切换虚拟服务器,从而创建级联的备份内容切换虚拟服务器。备份内容交换虚拟服务器级联深度的最大值为10。设备搜索正在运行的备份内容切换虚拟服务器,并访问该内容切换虚拟服务器以传递内容。

请注意

如果内容切换虚拟服务器同时配置了备份内容切换虚拟服务器和重定向URL,则备份内容切换虚拟服务器优先于重定向URL。当主和备份虚拟服务器都关闭时,将使用重定向。

使用CLI建立备份内容切换虚拟服务器

在命令提示符处,输入:

set cs vserver  -backupVserver  -disablePrimaryOnDown (ON|OFF) 

例子

set cs vserver vserver - cs -1 -backupVserver vserver - cs -2 -disablePrimaryOnDown 

使用图形化界面建立备份内容切换虚拟服务器

  1. 导航到流量管理>内容交换>虚拟服务器,配置虚拟服务器,并指定协议为MYSQL。
  2. 高级设置中,选择保护,并指定备份虚拟服务器

将多余的流量转移到备份虚拟服务器

当到内容切换虚拟服务器的连接数量超过配置的阈值时,溢出选项将到达内容切换虚拟服务器的新连接转移到备份内容切换虚拟服务器。阈值是动态计算的,也可以自行设置。将虚拟服务器上建立的连接数(以TCP表示)与阈值进行比较。当连接数达到阈值时,新的连接将被转移到备份内容交换虚拟服务器。

如果备份内容切换虚拟服务器达到配置的阈值且无法承担负载,则主内容切换虚拟服务器将所有请求转移到重定向URL。如果没有在主内容切换虚拟服务器上配置重定向URL,则后续请求将被丢弃。

使用实例配置内容交换虚拟服务器,将新的连接转移到备份虚拟服务器

在命令提示符处,输入:

set cs vserver \ -soMethod \ -soThreshold \ - spersistsistence \ -soPersistenceTimeout \ 

例子

set cs vserver vserver - cs -1 -soMethod Connection -soThreshold 1000 -soPersistence enabled -soPersistenceTimeout 2 

使用GUI设置内容切换虚拟服务器,将新连接转移到备份虚拟服务器

  1. 导航到流量管理>内容交换>虚拟服务器,配置虚拟服务器,并指定协议为MYSQL。
  2. 高级设置中,选择保护,并配置溢出。

配置重定向URL

如果HTTP或HTTPS类型的内容切换虚拟服务器为DOWN或DISABLED,您可以配置重定向URL来通信Citrix ADC设备的状态。这个URL可以是本地的,也可以是远程的。

重定向url可以是绝对url或相对url。如果配置的重定向URL包含绝对URL,则HTTP重定向将发送到配置的位置,而不管传入的HTTP请求中指定的URL是什么。如果配置的重定向URL中只包含域名(相对URL),则HTTP重定向报文发送到某个位置时,会将传入的URL附加到重定向URL中配置的域。

Citrix建议使用绝对URL。也就是说,以/结尾的URL,例如www.example.com/,而不是相对URL。相对URL重定向可能导致漏洞扫描程序报告假阳性。

请注意

如果内容切换虚拟服务器同时配置了备份虚拟服务器和重定向URL,则备份虚拟服务器优先于重定向URL。当主和备份虚拟服务器关闭时,将使用重定向URL。

当配置了重定向且内容切换虚拟服务器不可用时,设备将向用户的浏览器发出一个HTTP 302重定向。

使用CLI命令,配置内容切换虚拟服务器不可用时的重定向URL

在命令提示符处,输入:

set cs vserver \ -redirectURL \ 

例子

set cs vserver vserver -1 -redirectURL http://www.newdomain.com/mysite/maintenance 

使用GUI配置内容切换虚拟服务器不可用时的重定向URL

  1. 导航到流量管理>内容交换>虚拟服务器,配置虚拟服务器,并指定协议为MYSQL。
  2. 高级设置中,选择保护,并指定重定向URL。

配置状态更新选项

内容切换特性支持基于呈现给用户的特定内容跨多个服务器分发客户机请求。为了实现高效的内容交换,内容交换虚拟服务器根据内容类型将流量分配给负载均衡虚拟服务器,负载均衡虚拟服务器根据指定的负载均衡方式将流量分配给物理服务器。

为了实现顺畅的流量管理,了解负载均衡虚拟服务器的状态对内容交换虚拟服务器来说非常重要。如果绑定到内容切换虚拟服务器的负载均衡虚拟服务器被标记为DOWN,则状态更新选项有助于将内容切换虚拟服务器标记为DOWN。如果绑定到负载均衡虚拟服务器上的所有物理服务器都被标记为DOWN,则负载均衡虚拟服务器被标记为DOWN。

禁用状态更新时:

内容切换虚拟服务器的状态为UP。即使没有UP的绑定负载均衡虚拟服务器,它也会保持UP状态。

启用状态更新时:

在添加内容切换虚拟服务器时,其初始状态显示为DOWN。绑定状态为UP的负载均衡虚拟服务器时,内容交换虚拟服务器的状态变为UP。

如果绑定了多个负载均衡虚拟服务器,并且将其中一个设置为默认值,则内容交换虚拟服务器的状态将反映默认负载均衡虚拟服务器的状态。

如果绑定了多个负载均衡虚拟服务器,但没有指定任何一个为默认值,则只有绑定的负载均衡虚拟服务器都为UP时,内容切换虚拟服务器的状态才会显示为UP。

使用CLI命令,配置状态更新选项

在命令提示符处,输入:

add cs vserver \ \ \ \ -stateUpdate ENABLED 

例子

add cs vserver csw_vserver HTTP 10.18.250.154 80 -stateupdate ENABLED -cltTimeout 180 

使用GUI配置状态更新选项

  1. 导航到流量管理>内容交换>虚拟服务器,配置虚拟服务器,并指定协议为MYSQL。
  2. 高级设置中,选择流量设置,然后选择状态更新

刷新浪涌队列

当物理服务器收到大量请求时,它对当前连接到它的客户机的响应就会变慢,这会让用户感到不满和不满。通常,过载还会导致客户端接收到错误页面。为了避免这种过载,Citrix ADC设备提供了喘振保护等特性,这可以控制建立到服务的新连接的速率。

该设备在客户端和物理服务器之间进行连接多路复用。当它接收到要访问服务器上的服务的客户机请求时,该设备将查找已经建立的到服务器的空闲连接。如果找到一个空闲连接,它就使用该连接在客户机和服务器之间建立一个虚拟连接。如果没有找到现有的空闲连接,该设备将与服务器建立一个新的连接,并在客户机和服务器之间建立一个虚拟链接。但是,如果设备不能与服务器建立新的连接,它就会将客户机请求发送到激增队列。如果负载均衡或内容交换虚拟服务器上绑定的所有物理服务器都达到了客户端连接的上限(最大客户端值、喘振保护阈值或服务的最大容量),设备将无法与任何服务器建立连接。电涌保护功能使用电涌队列来调节打开与物理服务器连接的速度。该设备为绑定到虚拟服务器的每个服务维护不同的激增队列。

每当出现设备无法建立连接的请求时,峰值队列的长度就会增加,而每当队列中的请求发送到服务器或请求超时并从队列中删除时,峰值队列的长度就会减少。

如果服务或服务组的激增队列太长,您可能需要刷新它。可以刷新特定服务或服务组或绑定到负载均衡虚拟服务器的所有服务和服务组的激增队列。刷新激增队列不会影响现有连接。只有出现在激增队列中的请求才会被删除。对于这些请求,客户端必须发出一个新的请求。

还可以刷新内容切换虚拟服务器的激增队列。如果内容切换虚拟服务器将一些请求转发到特定的负载均衡虚拟服务器,并且负载均衡虚拟服务器还接收到一些其他请求,那么在刷新内容切换虚拟服务器的激增队列时,只刷新从该内容切换虚拟服务器接收到的请求。负载平衡虚拟服务器的喘振队列中的其他请求不被刷新。

请注意

不支持刷新缓存重定向、认证、VPN、GSLB虚拟服务器或GSLB业务的激增队列。如果启用了“使用源IP (USIP)”,则不要使用浪涌保护功能。

使用实例使用CLI命令刷新喘振队列

flush ns surgq命令的工作原理如下:

  • 可以指定必须刷新其喘振队列的服务、服务组或虚拟服务器的名称。
  • 如果在运行该命令时指定名称,则刷新指定实体的喘振队列。如果多个实体具有相同的名称,该设备将刷新所有这些实体的激增队列。
  • 如果在运行该命令时指定服务组的名称、服务器名称和端口,则设备仅刷新指定服务组成员的喘振队列。
  • 如果不指定服务组名称(),则不能直接指定服务组成员();如果不指定,则不能指定。如果要为特定服务组成员刷新喘调队列,请指定
  • 如果不指定任何名称就运行该命令,该设备将刷新设备上所有实体的激增队列。
  • 如果服务组成员用服务器名标识,则必须在此命令中指定服务器名;不能指定IP地址。

在命令提示符处,输入:

flush ns serverq [name ] [-serverName  ].使用实例<!——NeedCopy >

例子

1.flush ns osq -name SVC1ANZGB -serverName 10.10.10.1 80该命令将刷新IP地址为10.10.10的SVC1ANZGB服务或虚拟服务器的surge队列。flush ns surgq上述命令将刷新设备上的所有喘振队列。<!——NeedCopy >

使用GUI刷新喘振队列

导航到流量管理>内容交换>虚拟服务器,选择一个虚拟服务器,并在“操作”列表中选择冲洗缓冲队列

保护内容切换设置不发生故障