Citrix ADC

用例:ESI 支持动态获取和更新内容

边缘包括 (ESI) 是边缘级动态 Web 内容汇编的标记语言。它通过定义简单的标记语言来描述可在网络边缘聚合、组装和交付的可缓存和不可缓存的网页组件,从而帮助加速动态基于 Web 的应用程序。通过在 Citrix ADC 设备上使用 HTTP 标注,您可以阅读 ESI 结构以及动态聚合或汇编内容。

要实现此配置,您必须执行以下任务:

  1. 在 Citrix ADC 设备上启用重写功能。
  2. 在设备上创建 HTTP 标注,并使用有关外部服务器和其他所需参数的详细信息对其进行配置。
  3. 配置重写操作以将 ESI 内容替换为标注响应正文。
  4. 配置重写策略以指定执行操作的条件,然后全局绑定重写策略。

启用重写

必须先启用重写,然后才能在 Citrix ADC 设备上使用重写。以下过程介绍了启用重写功能的步骤。

使用 GUI 启用重写

  1. 请确保您已安装重写许可证。
  2. 在配置实用程序中,展开 AppExpert,然后右键单击“重写”,然后单击“启用重写功能”。

在 Citrix ADC 设备上创建 HTTP 标注

有关创建 HTTP 标注的更多信息,请参阅配置 HTTP 标注。 有关参数值的详细信息,请参阅 HTTP-Callout-2 的参数和值 pdf。

配置重写操作

创建一个重写操作“Action-Rewrite-1”,将 ESI 内容替换为标注响应正文。使用下表中显示的参数设置。

表 2. 操作重写的参数和值-1

参数
名称 Action-Rewrite-1
类型 替换
用于选择目标文本引用的表达式 “HTTP.RES.BODY(500).AFTER_STR (\” <example>\”).BEFORE_STR (\”</example>\”)”
替换文本的字符串表达式 “SYS.HTTP_CALLOUT(HTTP-Callout-2)”

使用配置实用程序配置重写操作

  1. 导航至 AppExpert > 重写 > 操作
  2. 在详细信息窗格中,单击 Add(添加)。
  3. 创建重写操作对话框中的“名称”中,键入Action-Rewrite-1
  4. 在“类型”中,选择替换
  5. 表达式中选择目标文本引用,键入以下默认语法表达式:

    "HTTP.RES.BODY(500).AFTER_STR("<example>").BEFORE_STR("<example>")"
    
  6. 在替换文本的字符串表达式中,键入以下字符串表达式:

    "SYS.HTTP_CALLOUT(HTTP-Callout-2)"
    
  7. 单击 Create(创建),然后单击 Close(关闭)。

创建重写策略并将其全局绑定

使用下表中显示的参数设置创建重写策略“策略重写-1”。您可以在“ 策略”子节点中创建重写策略,然后使用“ 重写策略管理器”将其全局绑定。或者,您可以使用“ 重写策略管理器”同时执行这两个任务。本演示使用“ 重写策略管理器”来执行这两项任务。

表 3. Policy-Rewrite-1 的参数和值

参数
名称 Policy-Rewrite-1
操作 Action_Rewrite-1
未定义的结果操作 -Global undefined-result action-
表达式 “HTTP.REQ.HEADER(“Name”).CONTAINS (“Callout”).NOT”

使用配置实用程序配置重写策略并将其全局绑定

  1. 导航至 AppExpert > 重写
  2. 在详细信息窗格的策略管理器下,单击重写策略管理器
  3. 重写策略管理器对话框中,单击覆盖全局
  4. 单击插入策略,然后在策略名称列中单击新建策略
  5. 创建重写策 略”对话框中,执行以下操作: 1. 在“名称”中,键入“策略重写-1”。
    1. 在“操作”中,选择“操作重写-1”。
    2. 在“未定义结果操作”中,选择“全局未定义结果 操作”。
    3. 在“表达式”中,键入以下默认语法表达式:
    "HTTP.REQ.HEADER("Name").CONTAINS("Callout").NOT"
    
    1. 单击 Create(创建),然后单击 Close(关闭)。
  6. 单击应用更改,然后单击关闭

用例:ESI 支持动态获取和更新内容