Citrix ADC

配置选择器和基本内容组

您可以配置选择器并将其应用于内容组。向一个或多个内容组添加选择器时,您可以指定选择器是用于标识缓存请求还是标识要失效(过期)的缓存对象。选择器是可选的。或者,您可以将内容组配置为使用参数和失效数。而且,Citrix建议您配置器。

配置选择器或决定改用参数后,您可以设置基本内容组。创建基本内容组后,您需要决定如何从缓存中过期对象,并配置缓存过期。您可以按照提高缓存性能和配置 曲奇标头和轮询中所述进一步修改缓存,但是您可能首先要配置缓存策略。

注意

内容组参数和选择器仅在请求时使用,并且您通常将它们与使用 我可以缓存吗或 可以吗操作的策略相关联。

选择器的优点

选择器是用于定位内容组中特定对象的过滤器。如果未配置选择器,Citrix®ADC设备将在内容组中查找完全匹配。这可能会导致同一对象的多个副本驻留在内容组中。例如,没有选择器的内容组可能需要存储host1.domain.com \ mypage.htm \ mypage.htm host2.domain.com和host3.domain.com \ mypage.htm的URL。相比之下,选择器只能匹配的URL (mypage.html,使用表达式http.req.url)和域(. com,使用表达式http.req.hostname.domain),从而允许通过相同的URL满足请求。

选择器表达式可以执行参数的简单匹配(例如,查找与几个查询字符串参数及其值匹配的对象)。选择器表达式可以使用布尔逻辑、算术运算和属性组合来识别对象(例如,统一资源定位地址干的段、查询字符串、邮递请求正文中的字符串、超文本传输协议标头中的字符串、饼干)选择器还可以执行编程功能来分析请求中的信息。例如,选择器可以提取 邮递正文中的文本,将文本转换为列表,并从列表中提取特定项目。

有关表达式以及可以在表达式中指定的内容的详细信息,请参阅策略和表达式

使用参数而不是选择器

尽管 Citrix建议将选择器与内容组结合使用,但您可以改为配置参数和失效参数。例如,假设您在内容组中为错误报告配置三个参数:布吉德颁发者和受理人。如果请求包含 BugID=456、Issuer=RohitV和 受让人=罗伯特,Citrix ADC设备可以提供与这些参数-值对匹配的响应。

内容组中的失效参数过期缓存条目。例如,假设 臭虫是失效参数,用户发出 邮递请求以更新错误报告。失效策略将请求定向到此内容组,内容组的失效参数将到期与 臭虫值匹配的所有缓存响应。(下次用户为此报表发出 收到请求时,缓存策略可使 Citrix ADC设备从源服务器刷新报表的缓存条目。)

请注意,同一个参数可以用作参数或失效参数。

内容组按以下顺序提取请求参数:

  • 网址查询
  • 文章主体
  • 曲奇标题

参数首次出现后,无论其在请求中发生的位置如何,都将忽略其后续出现的所有事件。例如,如果URL查询和职位正文中都存在一个参数,则只考虑URL查询中的参数。

如果您决定对内容组使用点击和失效参数,请在配置内容组时配置参数。

注意:Citrix建议您使用选择器而不是参数化的内容组,因为选择器更灵活,可以适应更多类型的数据。

配置选择器

内容组可以使用点击选择器检索缓存命中,也可以使用失效选择器对过期的缓存对象并从源服务器获取新的对象。

选择器包含一个名称和一道为高级表达式的逻辑表达式

有关高级表达式的详细信息,请参阅策略和表达式

要配置选择器,请为其分配一个名称并输入一个或多个表达式。作为最佳做法,选择器表达式应该包含 统一资源定位地址干和主机,除非有充分的理由忽略它们。

使用CLI配置选择器

在命令提示符下,键入:

添加缓存选择器\(\…)

有关配置一个或多个表达式的信息,请参阅使用命令行界面配置选择器表达式。

>添加缓存选择器product_selector“http.req.url.query.value(“ProductId”)”“”http.req.url.query.value(“BatchNum”)“”http.req.url.query.value(“depotLocation”)”>添加缓存选择器batch_selector“http.req.url.query.value”(“ProductId”)“”http.req.url.query.value(“BatchId”)“”http.req.url.query.value(“depotLocation”)”>添加缓存选择器产品\u id\u选择器“http.req.url.query.value”(“ProductId”)>添加缓存选择器batchnum\u选择器“http.req.url.query.value”(“batchnum”)“http.req.url.query.value”(“deptlocation”)”>添加缓存选择器batchid\u选择器“http.req.url.query.value”(“deptlocation”)“http.req.url.query.value”(“batchid”)“<!--NeedCopy-->

使用 桂配置选择器

导航到优化 > 集成缓存 > 缓存选择器,然后添加缓存选择器。

内容组

内容组是缓存对象的使用者,可以在响应中提供服务。首次启用成熟时,可缓存的对象将存储。例如,您可以为数据库

您可以配置整个内容组或内容组中选定条目的过期。

内容组中的数据可以是静态的或动态的,如下所示:

  • 静态内容组。查找请求上的URL干和主机名与响应干的URL和主机名之间的精确匹配。
  • 动态内容组。查找包含特价销量对,任意字符串或字模式模式的。

提供来自内容组的请求

  1. 用户输入项目的搜索条件,例如错误报告,然后单击 HTML表单中的查找按钮。
  2. 浏览器发出一个或多个 HTTP获取请求。这些请求包含参数(例如,错误所有者、错误 身份证件等)。
  3. Citrix ADC设备收到请求时,会搜索匹配的策略,如果找到与这些请求匹配的缓存策略,则会将请求定向到内容组。
  4. 内容组根据您在选择器中配置的条件在内容组中查找合适的对象。

例如,内容组可检索匹配的响应NameField=username,BugID=ID

  1. 如果找到匹配的对象,Citrix ADC设备可以将这些对象提供给用户的浏览器,从而将这些对象组装成完整响应(例如,错误报告)。

使内容组中的对象失效

  1. 用户修改数据(例如,用户修改错误报告并单击提交按钮)。
  2. 浏览器以一个或多个 超文本传输协议请求的形式发送此数据。例如,它可以以多个 HTTP POST请求的形式发送错误报告,其中包含有关错误所有者和错误 身份证件的信息。
  3. Citrix ADC设备将请求与失效策略相匹配。通用,这些策略配置为主方法。
  4. 如果请求与失效策略匹配,Citrix ADC设备将搜索与此策略关联的内容组,并使符合配置的失效条件的响应过期。

例如,失效选择器可以找到匹配的响应NameField=username,BugID=ID

  1. Citrix ADC设备下次收到针对这些响应的得到请求时,它会从源服务器获取刷新的版本,缓存刷新的响应,并将这些响应提供给用户的浏览器,并将其汇编成完整的错误报告。

设置基本内容组

默认情况下,所有缓存数据都存储在默认内容组中。您可以配置更多内容组并在一个或多个策略中指定这些内容组。

您可以为静态内容配置内容组,并且必须为动态内容配置内容组。您可以修改任何内容组的配置,包括默认组。

使用命令行界面设置基本内容组

在命令提示符下,键入:

添加缓存ContentGroup (-hitselector -invalselector | -hitparams -invalparams )-type [-relexpiry |-relexpirymillisec ] [-heurexpireyparam ]

添加缓存内容组产品\u详细信息–hitSelector产品\u selector–InvaliSelector id\u selector

添加缓存内容组bugrep-hitParams IssuePage RecordID模板TableId-invalParams RecordID-relExpiry 864000

使用GUI设置基本内容组

导航到“优化”>“集成缓存“>”内容组”,然后创建内容组。

过期或刷新缓存对象

如果响应没有过期标头或cache - control标头具有过期时间(信息或Smax-Age),则必须使用下列方法之一过期内容组中的对象:

  • 配置内容组过期设置以确定是否保留对象以及保留多长时间。
  • 为之内容组配置失效策略和作品。有关还有多信息,请参阅配置缓存和失效的策略
  • 手动使内容组或其中的对象过期。

缓存的响应过期后,Citrix ADC设备将在客户端下次发出响应请求时刷新响应。默认情况下,当缓存已满时,Citrix ADC设备首先替换最近使用最少的响应。

下面的列表介绍了使用内容组的设置过期缓存响应的方法。通常,这些方法指定为百分比或以秒为单位:

  • 手册。手动使内容组中的所有响应或缓存中的所有响应失效。
  • 响应为基础。正面和负面响应的特定有效期间隔。仅当响应中缺少上次修改的标头时,才会考虑基于响应的过期。
  • 启发式过期。对于具有 “上次修改” 标头的响应,启发式过期指定修改响应时间的时间(计算为当前时间减去上次修改时间,乘以启发式过期值)。例如,如果“最后修改”标头指示响应在 2.小时前更新,并且启发式过期设置为 10%,则缓存的对象在 0.2小时后过期。此方法假设经常更新的响应必须更频繁地过期。
  • 绝对或相对。以 嗯格式、当地时间或 格林尼治标准时间指定响应每天到期的确切(绝对)时间。本地时间可能不适用于所有时区。

相对过期时间指定从缓存未命中导致前往源服务器的行程到响应过期之间的几秒或毫秒。如果以毫秒为单位指定相对过期,请输入 10的倍数。这种过期形式适用于所有积极响应。将忽略响应中的 最后一次修改将过期和 缓存控制标头。

绝对和相对过期时间将覆盖响应本身中的任何到期信息。

  • 正在下载。“收到完整回复后过期” 选项将在下载响应时过期。这对于频繁更新的响应非常有用,例如股票报价。默认情况下,此选项处于禁用状态。

同时启用闪存缓存和接收完成响应后过期可加速动态应用程序的性能。启用这两个选项后,Citrix ADC设备仅为同时请求块提取一个响应。

  • 固定。默认情况下,当缓存已满时,Citrix ADC设备首先替换最近使用最少的响应。Citrix ADC设备不会将此行为应用于标记为固定的内容组。

如果不为内容组配置过期设置,则以下是用于在组中使对象过期的更多选项:

  • 使用应应内容组的engor操作品配置策略。
  • 配置使用 无效操作的策略时,输入内容组的名称。

如何应用过期方法

对于正式和负面响应,过期效果不成。下载又的“正面回复到期间“和”否定否定“表中描述了正式和负面回复

以下是用于了解应用于内容组的过期方法的经验法则:

  • 您可以控制 Citrix ADC设备在决定是否使对象过期时是否评估响应标头。
  • 〖citrix adc设备〗忽略导致响应(它们覆盖响应中的任何任何过导致响应标头响应
  • 启发式过期设置以及“弱正”和“弱负”过期(配置实用程序中标记为默认值)会导致Citrix ADC设备检查响应标头。这些设置一起工作,如下所示:
    • 到期或cache - control标头中的值将覆盖这些内容组设置。
    • 对于缺乏 到期或 缓存控制标头但具有 最后修改标头的正面响应,Citrix ADC设备将启发式过期设置与标头值进行比较。
    • 对于缺少过期、缓存控制或上次修改标头的积极响应,Citrix ADC设备使用“弱正值”值。
    • 对于缺少过期或缓存控制标头的负面响应,Citrix ADC设备使用 “弱负值”。

下表介绍了如何应用这些方法。

响应类型 到期标题类型 内容组设置 对象保留在缓存中的时间段
积极的 任何标题 在(Relexpiry)之后过期内容,无无其他 使用“在内容后过期” 设置的值。
积极的 任何标题 内容在(过期)时过期无其他设置 从 “过期内容时间” 设置的值中减去当前日期
积极的 任何标题 在(重新解释)后使内容过期和 内容在(过期)过期 对内容组设置使用两个值中较小的值。请参阅此表中的上一行。
积极的 最后修改(与任何其他标题) 启发式(Heurexpiry param),带任何其他设置 从当前日中减去上级,将结果结果批发式过的值,然后除以100。
积极的 最后修改(与任何其他标题) 违约(正)(弱波峰到期)没有其他设置 使用默认(正数)到期设置的值。
积极的 到期或cache - control:存在信息标头 上次修改的标题不存在、启发式(heureXpiry)参数)、默认值(正)(软糖)到期)或两者兼有 从过期或日期中减去当前日cache - control:信息期。
积极的 没有缓存标头 默认值(正值)(WeakPostrel到期)和任何其他过期设置 使用默认值(正)设置的值。
积极的 没有缓存标头 启发布(Heurexpiriy param)现出,默认(正)(Deaveposrel到期)设置不在。 如果最后修改标头不存在,则不会缓存响应或缓存为“已过期”状态。如果存在“最后修改”标题,请使用启发式过期值。
负面的 过期或cache - control:信息 在(重新解释)后过期内容、在(过期)时过期内容或两个设置 从过期标头的值中减去当前日期,或或用缓存控制:最大年龄率的值。
负面的 到期或缓存控制标头不在 在(重新解释)后过期内容、在(过期)时过期内容或两个设置 响应不缓存,或缓存为“已过期”状态。
负面的 过期或cache - control:信息 任何设置 从过期或日期中减去当前cache - control:信息日期。
负面的 到期和 缓存控制:最大年龄标头不存在 违约(负)(弱灰色到期) 使用默认值(负值)设置。
负面的 到期和 缓存控制:最大年龄标头不存在 除默认(负)(weakNegRel到期)以外的任何设置 对象未缓存或缓存为“已过期”状态。

通过手动方法过期内容组

您可以手动过期内容组中的所有条目。

使用命令行界面手动过期内容组中的所有响应

在命令提示符下,键入:

过期缓存ContentGroup

使用 桂手动过期内容组中的所有响应

导航到“优化”>“集成缓存“>”内容组“,选择选择内容,然后单击”无效“以使内容组中的所过过响应响应响应响应过过

使用 桂手动过期缓存中的所有响应

导航到“优化”>“集成缓存“>”内容组”,然后单击“全部无效”以使缓存中的所有响应过期。

配置内容组的定期过期

您可以配置内容组,使其对其条目执行选择性或完全过期。过期间隔可以是固定的,也可以是相对的。

使用命令行界面配置内容组过期

在命令提示符下,键入:

set cache contentgroup \ (-relExpiry|-relExpiryMilliSec|-absExpiry|-absExpiryGMT| -heurExpiryParam|-weakPosRelExpiry|-weakNegRelExpiry| -expireAtLastBye) \

使用GUI配置内容组过期

导航到“优化”>“集成缓存”>“内容组“,选择内容组,然后然后指定期方法。

过期单个响应

过期响应会强制Citrix ADC设备从源服务器获取刷新的副本。例如,没有验证器埃塔格”或“上次修改的标头的响应无法重新验证。因此,刷新这些响应具有与过期响应相同的效果。

要使静态数据的内容组中缓存响应过期,您可以指定必须与存储 统一资源定位地址匹配的 网址如果缓存的响应是参数化内容组的一部分,则必须指定组名称和确切的 统一资源定位地址干。主机名和端口号必须与缓存响应的主机 超文本传输协议请求标头中的相同。如果未指定端口,则假定端口 80。

使用命令行界面使内容组中的单个响应过期

在命令提示符下,键入:

到期缓存对象 - url -host [--port ] [-groupname ] [-httpmethod get | post]

使用 CLI使内容组中的单个响应过期

在命令提示符下,键入以下命令:

过期缓存对象-定位器

使用GUI过期缓存响应

导航到“优化”>“集成缓存”>“缓存对象”,选择缓存的响应,然后过期。

使用GUI过期响应

导航到“优化”>“集成缓存”>“缓存对象”,单击”索”和,设置搜索条件以查找所需的缓存响应并过期。

内容组中的冲洗响应

您可以删除或刷新内容组中的所有响应、组中的某些响应或缓存中的所有响应。刷新缓存的响应可释放新的缓存响应的内存。

注意: 要一次刷新多个对象的响应,请使用配置实用程序方法。命令行界面不提供此选项。

使用命令行界面刷新内容组的响应

在命令提示符下,键入:

刷新缓存内容组 [-query | [-selectorValue -host ]]

使用 桂刷新内容组的响应

  1. 导航到“优化”>“集成缓存”>“内容组”。
  2. 在详细信中所在,按如下方刷新闻:
    • 要刷新所有内容组中的所有响应,请单击“全部无效”,然后刷新所有响应。
    • 要刷新特定内容组中的响应,请选择内容组,单击”无效“,然后然后新闻别响应。

注意: 如果此内容组使用选择器,则可以通过在“选择器值”文本框中输入字符串并在“主机”文本框中输入主机名来选择性地刷新响应。然后点击刷新并确定。选择器值可以是最多 2319 个字符的查询字符串,用于参数化失效。

如果内容组使用失效参数,则可以通过在查询字段中输入字符串来选择性地刷新响应。

如果内容组使用失效参数,并且配置了属于目标主机的对象失效,请在查询和主机字段中输入字符串。

使用命令行界面刷新缓存的响应

在命令提示符下,键入:

刷新缓存对象-定位器|-url-host[-port][-groupName][-httpMethod GET | POST]

使用 桂刷新缓存响应

导航到“优化”>“集成缓存”>“缓存对象”,选择缓存对象,然后刷新。

删除内容组

如果内容组未被任何在缓存中存储响应的策略使用,则可以删除该内容组。如果内容组绑定到策略,则必须先删除策略。删除内容组会删除该组中存储的所有响应。

您无法删除默认值、基本文件或 三角洲组。默认组存储不属于任何其他内容组的缓存响应。

使用命令行界面删除内容组

在命令提示符下,键入:

rm缓存内容组

使用 桂删除内容组

导航到“优化”>“集成缓存”>“内容组”,选择内容组,然后删除。

配置选择器和基本内容组