使用案例:ESI 支持动态获取和更新内容
边缘侧包含 (ESI) 是边缘级动态 Web 内容汇编的标记语言。它通过定义一种简单的标记语言来描述可以在网络边缘聚合、组装和交付的可缓存和不可缓存的网页组件,从而有助于加速基于 Web 的动态应用程序。通过在 NetScaler 设备上使用 HTTP 标注,您可以通读 ESI 构造并动态聚合或汇编内容。
要实现此配置,必须执行以下任务:
- 在 NetScaler 设备上启用重写。
- 在设备上创建 HTTP 标注,并使用有关外部服务器和其他必需参数的详细信息对其进行配置。
- 配置重写操作以将 ESI 内容替换为标注响应正文。
- 配置重写策略以指定执行操作的条件,然后全局绑定重写策略。
启用重写
在 NetScaler 设备上使用重写之前,必须启用重写功能。以下过程介绍了启用重写功能的步骤。
使用 GUI 启用重写
- 确保您已经安装了重写许可证。
- 在配置实用程序中,展开 AppExpert,然后右键单击“重写”,然后单击“启用重写功能”。
在 NetScaler 设备上创建 HTTP 标注
有关创建 HTTP 标注的更多信息,请参阅 配置 HTTP 标注。 有关参数值的更多信息,请 参阅 HTTP-Callout-2 pdf 的参数和值 。
配置重写操作
创建一个重写操作 ActionRewrite-1,用标注响应正文替换 ESI 内容。使用下表中显示的参数设置。
表 2. 操作重写 -1 的参数和值
| 参数 | 值 |
|---|---|
| 名称 | Action-Rewrite-1 |
| 类型 | 将 |
| 选择目标文本引用的表达式 | “HTTP.RES.BODY(500).AFTER_STR (\” |
| 替换文本的字符串表达式 | “SYS.HTTP_CALLOUT(HTTP-Callout-2)” |
使用配置实用程序配置重写操作
- 导航到 AppExpert > 重写 > 操作。
- 在详细信息窗格中,单击“添加”。
- 在“创建重写操 作”对话框的“名称”中,键入“操作重写 -1”。
- 在类型中,选择 替换。
-
在 表达式 中选择目标文本引用,键入以下高级策略表达式:
"HTTP.RES.BODY(500).AFTER_STR("<example>").BEFORE_STR("<example>")" <!--NeedCopy--> -
在替换文本的字符串表达式中,键入以下字符串表达式:
"SYS.HTTP_CALLOUT(HTTP-Callout-2)" <!--NeedCopy--> - 单击“创建”,然后单击“关闭”。
创建重写策略并将其全局绑定
使用下表所示的参数设置创建重写策略 Policy Rwrite -1。您可以在 Policy 子节点中 创建重写策略,然后使用 重写策略管理器将其全局绑定。或者,您可以使用 重写策略管理器同时执行这两项任务。本演示使用 重写策略管理器来执行这两项任务。
表 3. 策略重写 -1 的参数和值
| 参数 | 值 |
|---|---|
| 名称 | Policy-Rewrite-1 |
| 操作 | Action_Rewrite-1 |
| 未定义的结果操作 | -全局未定义结果操作- |
| 表达式 | “HTTP.REQ.HEADER(“Name”).CONTAINS (“Callout”).NOT” |
使用配置实用程序配置重写策略并将其全局绑定
- 导航到 AppExpert > 重写。
- 在详细信息窗格的 策略管理器下,单击 重写策略管理器。
- 在“重写策略管理器”对话框中,单击“覆盖全局”。
- 单击 插入策略,然后在 策略名称 列中,单击 新建策略。
- 在“创建重写策 略”对话框中,执行以下操作: 1. 在名称中,键入 Policy Rwrite -1。
- 在操作中,选择操作重写 -1。
- 在 未定义结果操作中,选择 全局未定义结果 操作。
- 在 表达式中,键入以下高级策略表达式:
"HTTP.REQ.HEADER("Name").CONTAINS("Callout").NOT" <!--NeedCopy-->- 单击“创建”,然后单击“关闭”。
- 单击“应用更改”,然后单击“关闭”。