配置响应程序操作
启用响应程序功能后,必须配置一个或多个用于处理请求的操作。响应程序支持以下类型的操作:
-
用回应。发送 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/html
和 Content-Length:<value>
静态标头进行响应。
注意:
在自定义标题配置中,您还可以覆盖 “Content-Type” 标头值。
在命令提示符下,键入以下命令:
add responder action <name> <type> (<target> | <htmlpage>) [-comment <string>] [-responseStatusCode <positive_integer>] [-reasonPhrase <expression>] [-headers <name(value)> ...]
其中,
名。响应程序操作的名称。必须以字母、数字或下划线字符 (_) 开头,并且必须仅包含字母、数字和连字符 (-)、句点 (.) 哈希 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线字符。添加响应程序策略后可以更改。
类型。响应程序操作的类型。可用设置功能如下:
- 响应
<target>
/响应-使用指定为目标的表达式响应请求。 - 响应withhtmlpage-使用上传的 HTML 页面对象指定为目标来响应请求。
- redirect-将请求重定向到指定为目标的 URL。
- sqlresponse_ok-发送一个 SQL 确定响应。
- 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 配置响应程序操作,请执行以下操作:
- 导航到 AppExpert > 响应程序 > 操作。
- 在详细信息窗格中,执行以下操作之一:
- 要创建操作,请单击 添加。
- 要修改现有操作,请选择该操作,然后单击 “ 打开”。
- 单击 “ 创建” 或 “确定”,具体取决于您是创建操作还是修改现有操作。
- 单击关闭。状态栏中将显示一条消息,指出该功能已启用。
- 要删除响应程序操作,请选择该操作,然后单击 “删 除”。状态栏中将显示一条消息,指出该功能已被禁用。
使用 “添加表达式” 对话框 添加表达式
-
在 创建响应程序操作 或 配置响应程序操作 对话框中,单击 添加。
- 在 “ 添加表达式 ” 对话框中,在第一个列表框中为表达式选择第一个术语。
- HTTP。HTTP 协议。如果要检查与 HTTP 协议有关的请求的某些方面,请选择此选项。
- 系统。一个或多个受保护的网站。如果要检查请求中与请求收件人有关的某些方面,请选择此选项。
- 客户端。发送请求的计算机。如果要检查请求发件人的某些方面,请选择此选项。
- 分析。与请求关联的分析数据。如果要检查请求元数据,请选择此选项。
- 啜。一个 SIP 请求。如果要检查 SIP 请求的某些方面,请选择此选项。当你做出选择时,最右边的列表框会列出表达式下一部分的适当术语。
- 在第二个列表框中,为表达式选择第二个术语。这些选择取决于您在上一步中所做的选择,并且适合上下文。进行第二次选择后,“构造表达式” 窗口下方的 “帮助” 窗口(该窗口为空)将显示描述刚刚选择的术语的用途和用法的帮助。
- 继续从上一列表框右侧显示的列表框中选择术语,或者在出现提示您输入值的文本框中键入字符串或数字,直到表达式完成。
配置全局 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 页面
- 导航到 AppExpert > 响应程序 > HTML 页面导入。
- 在 响应程序 HTML 导 入详细信息窗格中,单击 添加。
-
在 HTML 页面导入对象 页面中,设置以下参数:
- 名称。HTML 页面的名称。
- 从导入。从文件、文本或文本导入。
- URL。选择以输入 HTML 文件的 URL 位置。
- 文件。从设备目录中选择 HTML 文件。
- 文本。 选择 HTML 文件作为文本。
- 单击继续。
- 验证响应者 HTML 页面详细信息。
-
单击完成。
要编辑 HTML 页面,可以选择一个文件,然后从 “选 择操作 ” 下拉列表中单击 “ 编辑响应程序 HTML 页面文件 ”。