配置响应程序操作

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

  • 回应与。发送由 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。一个表达式,指定要使用

  • htmlpage。选项指定与 HTMLpage 响应

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

  • hits。执行操作的次数。

  • referenceCount。对操作的引用数。

  • undefHits。该操作产生民主基金的次数。

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

  • 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 页面响应程序操作中使用自定义标头进行响应。您最多可以配置八个自定义标头。以前,设备只响应“内容类型:文本 /HTML”和“Content-Length:<value>”静态标头。

注意 在自定义标头配置中,您还可以重写“内容类型” 标头值。

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

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

其中,

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

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

  1. respondwith <target> -使用指定为目标的表达式响应请求。
  2. respondwithhtmlpage - 使用指定为目标的上传 HTML 页面对象响应请求。
  3. 重定向-将请求重定向到指定为目标的 URL。
  4. 正方案-发送一个 SQL 确定响应。
  5. 错误-发送 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,对于 respondwithhtmlpage 为 200 最小值:100 最大值:599

reasonPhrase。指定 HTTP 响应原因短语的表达式。原因短语可能是带引号的字符串文字或 PI 表达式。例如:“无效的 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>,替换响应程序操作的名称。

配置响应程序操作