Citrix ADC

HTTP cookie持久性

当配置HTTP cookie持久性时,Citrix ADC设备将在初始客户端请求的HTTP报头中设置一个cookie。cookie中包含了负载均衡算法选择的服务的IP地址和端口。与任何HTTP连接一样,客户端随后将该cookie包含在任何后续请求中。

当Citrix ADC设备检测到cookie时,它将请求转发到cookie中的服务IP和端口,保持连接的持久性。可以对HTTP或HTTPS类型的虚拟服务器使用这种持久性。这种持久类型不消耗任何设备资源,因此可以容纳无限数量的持久客户机。

注意:如果客户端的Web浏览器配置为拒绝cookie,那么基于cookie的HTTP持久性将不起作用。建议在网站上配置cookie检查,并警告那些似乎没有正确存储cookie的客户,如果他们想使用它,他们需要为网站启用cookie。

Citrix ADC设备插入的cookie格式为:

NSC_XXXX = < ServiceIP > < ServicePort >

地点:

  • NSC_XXXX是虚拟服务器ID,它来源于虚拟服务器名。
  • ServiceIP和ServicePort分别是服务IP地址和服务端口的编码表示。IP地址和端口分别编码。

您可以为这种类型的持久性设置一个超时值,以指定会话的不活动时间。当连接在指定的时间内处于非活动状态时,Citrix ADC设备将丢弃持久会话。来自同一客户端的任何后续连接都会导致基于配置的负载平衡方法选择一个新的服务器,并建立一个新的持久会话。

注意:如果将超时值设置为0,则Citrix ADC设备不会指定过期时间,而是设置一个会话cookie,该cookie在客户机浏览器关闭时不保存。

默认情况下,Citrix ADC设备设置HTTP版本0 cookie,以最大限度地兼容客户端浏览器。(只有特定的HTTP代理才能理解版本1的cookie;大多数常用的浏览器都没有。)您可以将设备配置为设置HTTP版本1 cookie,以符合RFC2109。对于HTTP版本0 cookie,设备将cookie过期日期和时间作为绝对协调世界时(GMT)插入。它将此值计算为设备上的当前GMT时间和超时值的总和。对于HTTP版本1的cookie,设备通过设置HTTP cookie的“Max-Age”属性插入相对过期时间。在这种情况下,客户机的浏览器计算实际过期时间。

要基于设备插入的cookie配置持久性,请参见配置不需要规则的持久性类型

在HTTP cookie中,设备默认设置HTTPOnly标志,表示该cookie不可编写脚本,且不能向客户端应用程序显示。因此,客户端脚本无法访问cookie,客户端不容易受到跨站脚本的影响。

方法,但是某些浏览器不支持HTTPOnly标记,因此可能不会返回cookie。结果,坚持被打破了。对于不支持该标志的浏览器,可以省略HTTPOnly标记。

要更改HTTPOnly通过CLI方式设置标志

在命令提示符下,输入:

设置lb参数-httpOnlyCookieFlag (ENABLED|DISABLED) 

例子:

> set lb parameter -httpOnlyCookieFlag disabled Done > show lb parameter lb全局参数:Persistence Cookie HttpOnly Flag: disabled使用hash端口lb: YES Done 

要更改HTTPOnly使用GUI设置标志

  1. 导航到流量管理>负载均衡>配置负载均衡参数,并选择或清除持久性Cookie仅HTTPOnly国旗。

从版本10.5 build 55.8开始,除了任何SSL加密之外,您还可以加密cookie。

set lb parameter -UseEncryptedPersistenceCookie ENABLED -cookiePassphrase test 
  1. 导航到交通管理>更改负载均衡参数,并选择编码持久性Cookie值并输入密码饼干密码
HTTP cookie持久性