Citrix ADC

集成缓存的默认设置

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

默认缓存策略

集成缓存具有内置策略。Citrix ADC设备以特定顺序计算策略,如下面的部分所述。

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

请注意如果您在9.0版本之前配置了策略,并且在绑定策略时指定了- precdedefrules参数,那么它们将在迁移过程中自动分配给覆盖时间绑定点。

查看默认策略

内置策略名称以下划线(_)开头。使用show cache policy命令可以从命令行和管理控制台查看内置策略。

默认请求策略

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

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

不要缓存使用任何非GET方法的请求的响应。

策略名称为_nonGetReq。策略规则如下:

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

为头值包含If-Match或If-Unmodified-Since的请求设置NOCACHE动作。

策略名称为“_advancedConditionalReq”。策略规则如下:

HTTP.REQ.HEADER(“If-Match”)。HTTP.REQ.HEADER("If-Unmodified-Since").EXISTS

为具有以下报头值的请求设置MAY_NOCACHE动作:Cookie、Authorization、Proxy-authorization或包含NTLM或Negotiate报头的请求。

策略名称为_personalizedReq。策略规则如下:

HTTP.REQ.HEADER(“饼干”)。HTTP.REQ.HEADER("Authorization")。HTTP.REQ.HEADER("Proxy-Authorization")。存在|| http.req.is_ntlm_or_negotiate

默认响应策略

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

的策略绑定_resBuiltinDefaults策略标签,并按照它们列出的顺序求值:

  1. 不要缓存HTTP响应,除非它们的类型是200、304、307、203,或者类型在400到499或300到302之间。

    策略名称为_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响应的Vary报头的值不是Accept-Encoding,则不要缓存。

    压缩模块插入Vary: Accept_Encoding标头。这个表达式的名称是_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、No-Store或Private,或者cache - control头无效,则不要缓存响应。

    策略名称为_uncacheableCacheControlRes.策略规则如下:

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

  4. 如果Cache- control头具有以下值之一,则缓存响应:Public, Must-Revalidate, Proxy-Revalidate, 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. 包含Expires头的缓存响应。

    策略名称为_cacheableExpiryRes.策略规则如下:

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

  7. 如果响应包含一个Content-Type报头,其值为Image,则删除报头中的所有cookie并缓存它。

    策略名称为_imageRes.策略规则如下:

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

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

    添加缓存内容组nocookie

  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-Unmodified-Since标头的请求。

请注意这与If-Modified-Since标头不同。

  1. 如果服务器没有设置过期报头,则不要缓存响应。

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

  1. 不要缓存HTTP响应状态代码为201、202、204、205或206的响应。
  2. 不要缓存HTTP响应状态代码为4xx的响应(状态代码403、404和410除外)。
  3. 如果响应类型为FIN终止,或者响应不具有以下属性之一,则不要缓存响应:Content-Length或Transfer-Encoding: Chunked。
  4. 如果缓存模块无法解析其cache - control头,则不要缓存响应。

默认内容组的初始设置

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

集成缓存的默认设置