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

边缘包括 (ESI) 是边缘级动态 Web 内容汇编的标记语言。它通过定义一种简单的标记语言来描述可在网络边缘聚合、组装和交付的可缓存和不可缓存的 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 内容替换为标注响应正文。使用下表中显示的参数设置。

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

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

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

  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”。您可以在“ 策略”子节点中创建重写策略,然后使用“ 重写策略管理器”将其全局绑定。或者,您可以使用“ 重写策略管理器”同时执行这两个任务。本演示使用“ 重写策略管理器”来执行这两项任务。

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

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

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

  1. 导航至 AppExpert > 重写
  2. 在详细信息窗格的“策略管理器”下,单击“重写策略管理器”。
  3. 在“重写策略管理器”对话框中,单击“覆盖全局”。
  4. 单击插入策略,然后在策略名称列中单击新建策略
  5. 在“创建重写策略”对话框中,执行以下操作:

    1. 在名称中,键入策略重写-1。
    2. 在“操作”中,选择“操作重写-1”。
    3. 在“未定义结果操作”中,选择“全局未定义结果操作”。
    4. 在“表达式”中,键入以下默认语法表达式:

      "HTTP.REQ.HEADER("Name").CONTAINS("Callout").NOT"
      
    5. 单击 Create(创建),然后单击 Close(关闭)。
  6. 单击应用更改,然后单击关闭