Citrix ADC

配置响应程序操作

启用响应程序功能后,必须配置一个或多个用于处理请求的操作。响应程序支持以下类型的操作:

  • 用回应。发送 Target 表达式定义的响应,而不将请求转发到 Web 服务器。(Citrix ADC 设备替代 Web 服务器并充当 Web 服务器。)使用这种类型的操作可以手动定义基于 HTML 的简单响应。通常情况下,“响应方式” 操作的文本由 Web 服务器错误代码和简短的 HTML 页面组成。

  • 用 SQL 做出响应确定。发送由 Target 表达式定义的指定 SQL OK 响应。使用此类操作可以向 SQL 查询发送 SQL OK 响应。

  • 使用 SQL 错误进行响应。发送由 Target 表达式定义的指定 SQL Error 响应。使用此类操作可向 SQL 查询发送 SQL 错误响应。

  • 使用 HTML 页面进行响应。发送指定的 HTML 页面作为响应。您可以从以前上传的 HTML 页面的下拉列表中进行选择,也可以上传新的 HTML 页面。使用此类操作可以发送导入的 HTML 页面作为响应。设备在 responsewithhtmlpage 响应程序操作中使用自定义标头进行响应。您最多可以配置八个自定义标头。

  • 重定向。将请求重定向到其他网页或 Web 服务器。重定向操作可以将最初发送到 DNS 中存在但没有实际 Web 服务器的 “虚拟” 网站的请求重定向到实际的网站。它还可以将搜索请求重定向到适当的 URL。通常,重定向操作的重定向目标包含完整的 URL。

要使用 Citrix ADC 命令行配置响应程序操作,请执行以下操作:

显示指定响应程序操作的当前设置。如果未提供任何操作名称,则显示 Citrix ADC 设备上当前配置的所有响应程序操作的列表,其中包含缩写设置。

在命令提示符下,键入以下命令以配置响应程序操作并验证配置:

  • add responder action <name> <type> <target>
  • show responder action

参数:

  • 名称。响应程序操作的名称。 最大长度:127

  • 类型。响应程序操作的类型。它可以是:(响应方式)。

  • 目标。用于指定响应内容的表达式

  • htmlpage。 指定使用 htmlpage 进行响应的选项

  • 命中。执行操作的次数。

  • 参考计数。对操作的引用次数。

  • UndefHits。该行动导致民主基金的次数。

  • 评论。有关此响应程序操作的任何类型的信息。

  • 内置的。用于确定是否内置响应程序操作的标志

示例:

To create a responder action that displays a “Not Found” error page for URLs that do not exist:

> add responder action act404Error respondWith '"HTTP/1.1 404 Not Found\r\n\r\n"+ HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."'
Done

> show responder action

1) Name: act404Error
Operation: respondwith
Target: "HTTP/1.1 404 Not Found" + HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done

To create a responder action that displays a “Not Found” error page for URLs that do not exist:

add responder action act404Error respondWith '"HTTP/1.1 404 Not Found\r\n\r\n"+ HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."'
Done
> show responder action

1) Name: act404Error
Operation: respondwith
Target: "HTTP/1.1 404 Not Found" + HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done
<!--NeedCopy-->

要使用 Citrix ADC 命令行修改现有响应程序操作,请执行以下操作:

在命令提示符下,键入以下命令以修改现有的响应程序操作并验证配置:

  • set responder action <name> -target <string>
  • show responder action

示例:

set responder action act404Error  -target '"HTTP/1.1 404 Not Found\r\n\r\n"+ HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."'
 Done
> show responder action

1)      Name: act404Error
        Operation: respondwith
        Target: "HTTP/1.1 404 Not Found" + HTTP.REQ.URL.HTTP_URL_SAFE + " does not exist on the web server."
        Hits: 0
        Undef Hits: 0
        Action Reference Count: 0
 Done
<!--NeedCopy-->

要使用 Citrix ADC 命令行删除响应程序操作,请执行以下操作:

在命令提示符下,键入以下命令以删除响应程序操作并验证配置:

  • rm responder action <name>
  • show responder action

示例:

rm responder action act404Error
 Done

> show responder action
 Done
<!--NeedCopy-->

要使用 Citrix ADC 命令行在 responsewithhtmlpage 响应程序操作中添加自定义标头,请执行以下操作:

Citrix ADC 设备现在可以在 response withhtmlpage 响应程序操作中使用自定义标头进行响应。您最多可以配置八个自定义标头。以前,设备仅使用 Content-type:text/htmlContent-Length:<value> 静态标头进行响应。

注意:

在自定义标题配置中,您还可以覆盖 “Content-Type” 标头值。

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

add responder action <name> <type> (<target> | <htmlpage>) [-comment <string>] [-responseStatusCode <positive_integer>] [-reasonPhrase <expression>] [-headers <name(value)> ...]

其中,

名。响应程序操作的名称。必须以字母、数字或下划线字符 (_) 开头,并且必须仅包含字母、数字和连字符 (-)、句点 (.) 哈希 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线字符。添加响应程序策略后可以更改。

类型。响应程序操作的类型。可用设置功能如下:

  1. 响应 <target> /响应-使用指定为目标的表达式响应请求。
  2. 响应withhtmlpage-使用上传的 HTML 页面对象指定为目标来响应请求。
  3. redirect-将请求重定向到指定为目标的 URL。
  4. sqlresponse_ok-发送一个 SQL 确定响应。
  5. sqlresponse_error-发送一个 SQL 错误响应。这是一个强制性的论点。可能的值:noop、响应方式、重定向、使用 htmlpage 进行响应、sqlresponse_ok、sqlresponse_error

目标。指定响应内容的表达式。通常是重定向策略的 URL 或默认语法表达式。 除了引用请求中信息的 Citrix ADC 默认语法表达式之外,字符串构建器表达式还可以包含文本和 HTML 以及用于定义新行和段落的简单转义代码。用双引号将每个字符串构建器表达式元素(Citrix ADC 默认语法表达式或字符串)括起来。使用加号 (+) 字符连接元素。

htmlpage。对于 response withhtmlpage 策略,用作响应的 HTML 页面对象的名称。您必须首先导入页面对象。最大长度:31

评论。有关此响应程序操作的任何类型的信息。最大长度:255

响应状态码。HTTP 响应状态码,例如 200、302、404 等。重定向操作类型的 默认值为 302,响应与 htmlpage 的默认值为 200 最小值:100 最大值:599

原因短语。用于指定 HTTP 响应的原因短语的表达式。原因短语可以是带引号或 PI 表达式的字符串文字。例如:“无效的网址:” + HTTP.REQ.URL 最大长度:8191

标题。要插入到 HTTP 响应中的一个或多个标头。每个标头都指定为 “name (expr)”,其中 expr 是在运行时进行计算以提供命名标头值的表达式。您最多可以为响应程序操作配置八个标头。

要使用 GUI 配置响应程序操作,请执行以下操作:

  1. 导航到 AppExpert > 响应程序 > 操作
  2. 在详细信息窗格中,执行以下操作之一:
    • 要创建操作,请单击 添加
    • 要修改现有操作,请选择该操作,然后单击 “ 打开”。
  3. 单击 “ 创建” 或 “确定”,具体取决于您是创建操作还是修改现有操作。
  4. 单击关闭。状态栏中将显示一条消息,指出该功能已启用。
  5. 要删除响应程序操作,请选择该操作,然后单击 “删 ”。状态栏中将显示一条消息,指出该功能已被禁用。

使用 “添加表达式” 对话框 添加表达式

  1. 创建响应程序操作配置响应程序操作 对话框中,单击 添加

  2. 在 “ 添加表达式 ” 对话框中,在第一个列表框中为表达式选择第一个术语。
    • HTTP。HTTP 协议。如果要检查与 HTTP 协议有关的请求的某些方面,请选择此选项。
    • 系统。一个或多个受保护的网站。如果要检查请求中与请求收件人有关的某些方面,请选择此选项。
    • 客户端。发送请求的计算机。如果要检查请求发件人的某些方面,请选择此选项。
    • 分析。与请求关联的分析数据。如果要检查请求元数据,请选择此选项。
    • 啜。一个 SIP 请求。如果要检查 SIP 请求的某些方面,请选择此选项。当你做出选择时,最右边的列表框会列出表达式下一部分的适当术语。
  3. 在第二个列表框中,为表达式选择第二个术语。这些选择取决于您在上一步中所做的选择,并且适合上下文。进行第二次选择后,“构造表达式” 窗口下方的 “帮助” 窗口(该窗口为空)将显示描述刚刚选择的术语的用途和用法的帮助。
  4. 继续从上一列表框右侧显示的列表框中选择术语,或者在出现提示您输入值的文本框中键入字符串或数字,直到表达式完成。

配置全局 HTTP 操作

您可以将全局 HTTP 操作配置为在 HTTP 请求超时时调用响应程序操作。要配置此功能,必须首先创建要调用的响应程序操作。然后,将全局 HTTP 超时操作配置为使用该响应程序操作响应超时。

要使用 Citrix ADC 命令行配置全局 HTTP 操作,请执行以下操作:

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

  • set ns httpProfile -reqTimeoutAction <responder action name>
  • save ns config

对于 <responder action name>,用响应程序操作的名称替换。

配置 HTML 页面导入

当 Citrix ADC 设备使用自定义消息进行响应时,我们可以使用 HTML 文件进行响应。您可以使用 import responder htmlpage 命令导入文件,然后在命 add responder action <act name> respondwithhtmlpage <file name> 令中使用此文件。您还可以通过 Citrix ADC GUI 导入文件。您可以将所需的 HTML 页面导入到设备文件夹中,然后在响应程序运行期间上传该页面。

使用 CLI 导入 HTML 页面

在命令提示符下,键入:

import responder htmlpage [<src>] <name> [-comment <string>] [-overwrite][-CAcertFile <string>]

示例:

import responder htmlpage http://www.example.com/page.html my-responder-page -CAcertFile my_root_ca_cert

其中, CA 证书用于验证客户端证书。应使用 “导入 ssl certfile” CLI 命令或等效命令通过 API 或 GUI 导入证书。如果未配置证书名称,则使用默认的根 CA 证书进行证书验证。

使用 Citrix ADC 图形用户界面导入 HTML 页面

  1. 导航到 AppExpert > 响应程序 > HTML 页面导入
  2. 响应程序 HTML 导 入详细信息窗格中,单击 添加
  3. HTML 页面导入对象 页面中,设置以下参数:

    1. 名称。HTML 页面的名称。
    2. 从导入。从文件、文本或文本导入。
    3. URL。选择以输入 HTML 文件的 URL 位置。
    4. 文件。从设备目录中选择 HTML 文件。
    5. 文本。 选择 HTML 文件作为文本。
  4. 单击继续
  5. 验证响应者 HTML 页面详细信息。
  6. 单击完成

    HTML 页面导入

要编辑 HTML 页面,可以选择一个文件,然后从 “选 择操作 ” 下拉列表中单击 “ 编辑响应程序 HTML 页面文件 ”。

编辑响应程序 HTML 页面文件

配置响应程序操作