Citrix ADC

集成缓存的默认设置

Citrix ADC集成缓存功能提供了内置策略,其中包含默认内容组的默认设置和初始设置。本节中的信息定义了内置策略和默认内容组的参数。

默认缓存策略

集成缓存具有内置策略。Citrix ADC设备按特定顺序评估策略,如以下各节所述。

您可以使用绑定到请求时间覆盖或响应时间覆盖策略库的用户定义策略覆盖这些内置策略。

注意如果您在版9.0本之前配置了策略,并在绑定策略时指定了-precedeDefRules参数,则在迁移过程中会自动将这些策略分配给超时绑定点。

查看默认策略

内置策略名称以下划线 (_) 开头。您可以使用显示缓存策略命令从命令行和管理控制台查看内置策略。

默认请求策略

您可以通过配置新策略并将其绑定到请求时间覆盖处理点来覆盖以下内置请求时间策略。在以下策略中,请注意MAY_NOCACHE操作规定只有在响应时有用户配置的或内置的缓存指令时,才会缓存事务。

以下策略绑定到_reqBuiltinDefaults策略标签。它们按优先级顺序列出。

请勿缓存使用get以外任何方法的请求的响应。

策略名称为_nonGetReq。以下是策略规则:

! HTTP.REQ.METHOD.eq(得到)

为具有包含If- match或If-未修改-起始的标头值的请求设置NOCACHE操作。

策略名称是_advancedConditionalReq。以下是策略规则:

HTTP.REQ.HEADER(“If-Match”)。存在| | HTTP.REQ.HEADER .EXISTS(“If-Unmodified-Since”)

为具有以下标头值的请求设置MAY_NOCACHE操作:饼干,授权,代理授权或包含NTLM或协商标头的请求。

策略名称为_personalizedReq。以下是策略规则:

HTTP.REQ.HEADER(“饼干”)。存在| | HTTP.REQ.HEADER(“授权”)。存在| | HTTP.REQ.HEADER(“Proxy-Authorization”)。存在| | HTTP.REQ.IS_NTLM_OR_NEGOTIATE

默认响应策略

您可以通过配置新策略并将其绑定到响应时间覆盖处理点来覆盖以下默认响应时间策略。

以下策略绑定到_resBuiltinDefAULTS策略标签,并按照它们列出的顺序进行评估:

  1. 除非HTTP响应类型为200304307203或类型介于400年和499年之间或介于300年和302年之间,否则不要缓存HTTP响应。

    策略名称为_uncacheableStatusRes。以下是策略规则:

    ((http.res.status . eq (200)) || (http.res.status . eq (304)) || (http.res.status . between (400,499)) || (http.res.status . eq (200)) || (http.res.status . eq (304))(300、302)之间)| | (HTTP.RES.STATUS.EQ (307)) | | (HTTP.RES.STATUS.EQ (203)))

  2. 如果HTTP响应的值为“接受编码”以外的任何值,则不要缓存HTTP响应。

    压缩模块插入变化:接受编码标头。此表达式的名称是_uncacheableVaryRes。以下是策略规则:

    ((HTTP.RES.HEADER(“不同”).EXISTS) & & ((HTTP.RES.HEADER(“不同”).INSTANCE(1)。LENGTH > 0) || (!HTTP.RES.HEADER("Vary").STRIP_END\_WS.SET_TEXT_MODE(IGNORECASE).eq("Accept-Encoding"))))

  3. 如果其cache - control标头值为no - cache,不是商店或私人的,或cache - control标头无效,则不缓存响应。

    策略名称是_uncacheableCacheControlRes。以下是策略规则:

    ((http.res.cache \ _control.is \ _no \ _cache) || (http.res.cache \ _control.is \ _no \ _cache) || (http.res.cache \ _control.is \ _no \ _store) || (http.res.cache \ _control.is \ _invalid))

  4. Cache-Control标头具有以下值之一的缓存响应:公共,必须重新验证,代理重新验证,Max-Age, S-Maxage。

    策略名称是_cacheableCacheControlRes。以下是策略规则:

    ((http.res.cache_control.is_public) || (http.res.cache_control.is_max_age) || (http.res.cache_control.is_must_revalidate) || (http.res.cache_control.is_proxy_revalidate) || (http.res.cache_control.is_s_maxage)

  5. 不要缓存包含Pragma标头的响应。

    策略的名称为_uncacheablePragmaRes。以下是策略规则:

    HTTP.RES.HEADER .EXISTS(“杂注”)

  6. 包含"过期"标头的缓存响应。

    策略的名称为_cacheableExpiryRes。以下是策略规则:

    HTTP.RES.HEADER .EXISTS(“到期”)

  7. 如果响应包含具有图像值的内容类型标头,请删除标头中的任何Cookie并缓存它。

    策略的名称为_imageRes。以下是策略规则:

    HTTP.RES.HEADER(“内容类型”).SET_TEXT_MODE (IGNORECASE) .STARTSWITH(“图像/”)

    您可以配置以下内容组以使用此策略:

    add cache contentgroup nocookie -group -removeCookies YES

  8. 不缓存包含Set-Cookie标头的响应。

    策略的名称为_ personalizedRes。以下是策略规则:

    HTTP.RES.HEADER .EXISTS (set - cookie”) HTTP.RES.HEADER .EXISTS(“Set-Cookie2”)

对默认策略的限制

您不能使用用户定义的策略覆盖以下内置请求时间策略。

这些策略按优先级顺序列出。

  1. 如果相应的HTTP请求缺少get或post方法,请勿缓存任何响应。
  2. 如果HTTP请求URL长度加上主机名超过1744 byes,请勿缓存请求的任何响应。
  3. 不要缓存包含If-Match标头的请求的响应。
  4. 不要缓存包含If-未修改-因为标头的请求。

注意这与If-修改-因为标题不同。

  1. 如果服务器未设置过期标头,则不缓存响应。

您不能覆盖以下内置响应时间策略。这些策略将按其列出的顺序进行评估:

  1. 请勿缓存HTTP响应状态代码为201,202,204,205或206的响应。
  2. 不要缓存具有HTTP响应状态代码为4 xx(状态代码403404年和410年除外)的响应。
  3. 如果响应类型已终止fin,或响应不具有以下属性之一,请勿缓存响应:内容长度或传输编码:分块。
  4. 如果缓存模块无法解析其Cache-Control标头,请不要缓存响应。

默认内容组的初始设置

首次启用集成缓存时,Citrix ADC设备会提供一个名为默认内容组的预定义内容组。有关详细信息,请参阅默认内容组设置表格。

集成缓存的默认设置