Citrix ADC

配置响应程序操作

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

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

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

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

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

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

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

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

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

  • add responder action <name> <type> <target> [-bypassSafetyCheck (YES | NO) ]
  • show responder action

参数:

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

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

  • target。一个表达式,指定要使用

  • HTML 页面。选项指定与 HTMLpage 响应

  • bypassSafetyCheck。安全检查允许不安全的表达。注意: 此属性已弃用。

  • hits。执行操作的次数。

  • referenceCount。对操作的引用数。

  • undefHits。该操作产生 UNDEF 的次数。

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

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

示例:

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."
BypassSafetyCheck : NO
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."
BypassSafetyCheck : NO
Hits: 0
Undef Hits: 0
Action Reference Count: 0
Done

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

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

  • set responder action <name> -target <string> [-bypassSafetyCheck ( YES | NO )]
  • 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."
        BypassSafetyCheck : NO
        Hits: 0
        Undef Hits: 0
        Action Reference Count: 0
 Done

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

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

  • rm responder action <name>
  • show responder action

示例:

rm responder action act404Error
 Done

> show responder action
 Done

使用 Citrix ADC 命令行在 HTML 页响应程序操作中添加自定义标头:

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

注意:

在自定义标头配置中,您还可以覆盖“内容类型”标头值。

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

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

其中,

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. 添加表达式对话框的第一个列表框中,选择表达式的第一个术语。
    • HTTP。HTTP 协议。如果要检查与 HTTP 协议相关的请求的某些方面,请选择此选项。
    • SYS。一个或多个受保护的网站。如果要检查与请求收件人有关的请求的某些方面,请选择此选项。
    • CLIENT。发送请求的计算机。如果您想检查请求发件人的某些方面,请选择此选项。
    • 分析。与请求关联的分析数据。如果要检查请求元数据,请选择此选项。
    • SIP. 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 证书文件”CLI 命令或通过 API 或 GUI 等效命令导入证书。如果未配置证书名称,则将使用默认的根 CA 证书进行证书验证。

使用 Citrix ADC GUI 导入 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 页面文件

配置响应程序操作