这篇文章已经过机器翻译.放弃
配置响应程序操作
启用响应程序功能后,必须配置一个或多个用于处理请求的操作。响应程序支持以下类型的操作:
-
用回应。发送 Target 表达式定义的响应,而不将请求转发到 Web 服务器。(NetScaler 设备替代 Web 服务器并充当 Web 服务器。)使用这种类型的操作可以手动定义基于 HTML 的简单响应。通常情况下,“响应方式”操作的文本由 Web 服务器错误代码和简短的 HTML 页面组成。
-
用 SQL OK 做出响应。发送由 Target 表达式定义的指定 SQL OK 响应。使用此类操作可以向 SQL 查询发送 SQL OK 响应。
-
使用 SQL 错误进行响应。发送由 Target 表达式定义的指定 SQL 错误响应。使用此类操作可向 SQL 查询发送 SQL 错误响应。
-
使用 HTML 页面进行响应。发送指定的 HTML 页面作为响应。您可以从以前上载的 HTML 页面的下拉列表中进行选择,也可以上载新的 HTML 页面。使用此类操作可以发送导入的 HTML 页面作为响应。设备在 responsewithhtmlpage 响应程序操作中使用自定义标头进行响应。您最多可以配置八个自定义标头。导入的 HTML 页面存储在
/var/download/responder
目录中。 -
重定向。将请求重定向到其他网页或 Web 服务器。重定向操作可以将最初发送到 DNS 中存在但没有实际 Web 服务器的“虚拟”网站的请求重定向到实际的网站。它还可以将搜索请求重定向到适当的 URL。通常,重定向操作的重定向目标包含完整的 URL。
使用 CLI 配置响应程序操作:
显示指定响应程序操作的当前设置。如果未提供任何操作名称,则显示 NetScaler 设备上当前配置的所有响应程序操作的列表,其中包含缩写设置。
在命令提示符下,键入以下命令以配置响应程序操作并验证配置:
add responder action <name> <type> <target>
show responder action
参数:
-
名称。响应程序操作的名称。 最大长度:127
-
类型。响应程序操作的类型。它可以是:(respondwith)。
-
目标。一个指定要用什么来回应的表达式。
-
htmlpage。 指定使用 html 页面进行响应的选项。
-
命中。执行操作的次数。
-
referenceCount。对操作的引用次数。
-
undefHits。该操作导致 UNDEF 的次数。
-
评论。有关此响应程序操作的任何类型的信息。
-
内置的。用于确定响应方操作是否内置的标志。
示例:
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
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
使用 CLI 修改现有的响应程序操作:
在命令提示符下,键入以下命令以修改现有的响应程序操作并验证配置:
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
使用 CLI 删除响应程序操作:
在命令提示符下,键入以下命令以删除响应程序操作并验证配置:
rm responder action <name>
show responder action
示例:
rm responder action act404Error
Done
> show responder action
Done
使用 CLI 在 responsewithhtmlpage 响应程序操作中添加自定义标头:
NetScaler 设备现在可以在 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 (@)、等于 (=)、冒号 (:) 和下划线字符。添加响应程序策略后可以更改。
类型: 响应者操作的类型。可用设置功能如下:
-
respondwith
<target>
- 使用指定为目标的表达式来响应请求。 - respondwithhtmlpage - 使用上载的 HTML 页面对象指定为目标来回应请求。
- redirect - 将请求重定向到指定为目标的 URL。
- sqlresponse_ok-发送 SQL OK 响应。
-
sqlresponse_error - 发送 SQL 错误响应。这是一个强制性的参数。可能的值:
noop
、respondwith
、redirect
、respondwithhtmlpage
、sqlresponse_ok
、sqlresponse_error
目标: 指定响应内容的表达式。通常是重定向策略的 URL 或默认语法表达式。 除了引用请求中信息的 NetScaler 默认语法表达式外,字符串生成器表达式还可以包含文本和 HTML 以及定义新行和段落的简单转义码。用双引号将每个字符串生成器表达式元素(NetScaler 默认语法表达式或字符串)括起来。使用加号 (+) 字符连接元素。
htmlpage: 对于 respondwithhtmlpage
策略,用作响应的 HTML 页面对象的名称。您必须首先导入页面对象。最大长度:31
评论: 有关此响应者操作的任何类型的信息。最大长度:255
responseStatusCode: HTTP 响应状态码,例如 200、302、404 等。
redirect action
类型的默认值为 302,对于 respondwithhtmlpage
为 200,最小值:100,最大值:599
reasonPhrase: 指定 HTTP 响应的原因短语的表达式。原因短语可以是带引号或 PI 表达式的字符串文字。例如: "Invalid URL: " + HTTP.REQ.URL Maximum Length: 8191
标头: 要插入到 HTTP 响应中的一个或多个标头。每个标头都指定为 "name(expr),"
,其中 expr 是一个表达式,在运行时对其进行求值以提供命名标头的值。您最多可以为响应程序操作配置八个标头。
使用 GUI 配置响应程序操作:
- 导航到 AppExpert > 响应程序> 操作。
- 在详细信息窗格中,执行以下操作之一:
- 要创建操作,请单击 添加。
- 要修改现有操作,请选择该操作,然后单击打开。
- 单击创建或确定,具体取决于您是创建操作还是修改现有操作。
- 单击关闭。状态栏中将显示一条消息,指出该功能已启用。
- 要删除响应程序操作,请选择该操作,然后单击删除。状态栏中将显示一条消息,指出该功能已被禁用。
使用“添加表达式”对话框添加表达式
-
在 创建响应程序操作 或 配置响应程序操作 对话框中,单击 添加。
- 在“添加表达式”对话框中,在第一个列表框中为表达式选择第一个术语。
- HTTP。HTTP 协议。如果要检查与 HTTP 协议有关的请求的某些方面,请选择此选项。
- SYS。一个或多个受保护的网站。如果要检查请求中与请求收件人有关的某些方面,请选择此选项。
- 客户端。发送请求的计算机。如果要检查请求发件人的某些方面,请选择此选项。
- 分析。与请求关联的分析数据。如果要检查请求元数据,请选择此选项。
- SIP。一个 SIP 请求。如果要检查 SIP 请求的某些方面,请选择此选项。当您做出选择时,最右边的列表框会为表达式的下一部分列出相应的术语。
- 在第二个列表框中,为表达式选择第二个术语。这些选择取决于您在上一步中所做的选择,并且适合上下文。进行第二次选择后,“构造表达式”窗口下方的“帮助”窗口(该窗口为空)将显示描述刚刚选择的术语的用途和用法的帮助。
- 继续从上一列表框右侧显示的列表框中选择术语,或者在出现提示您输入值的文本框中键入字符串或数字,直到表达式完成。
配置全局 HTTP 操作
您可以将全局 HTTP 操作配置为在 HTTP 请求超时时调用响应程序操作。要配置此功能,必须首先创建要调用的响应程序操作。然后,配置全局 HTTP 超时操作以使用该响应程序操作响应超时。
使用 CLI 配置全局 HTTP 操作:
在命令提示符下,键入以下命令:
set ns httpProfile -reqTimeoutAction <responder action name>
save ns config
对于 <responder action name>
,请替换响应程序操作的名称。
配置 HTML 页面导入
当 NetScaler 设备使用自定义消息进行响应时,我们可以使用 HTML 文件进行响应。您可以使用 import responder htmlpage
命令导入文件,然后在命 add responder action <act name> respondwithhtmlpage <file name>
令中使用此文件。您还可以通过 NetScaler 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 证书用于验证客户端证书。必须使用 import ssl certfile
CLI 命令或通过 API 或 GUI 等效命令导入证书。如果未配置证书名称,则使用默认的根 CA 证书进行证书验证。
从本地文件系统导入 HTML 页面
您也可以从本地文件系统导入 HTML 页面。要导入,请使用 SCP 或任何其他方式将文件复制到 /var/tmp/ 目录,然后使用“local:”关键字将其导入。例如:
import responder htmlpage local:my_local_file.html my_local_file
my_local_file.html
此处位于“/var/tmp/”目录中。
注意
“local:”关键字仅搜索“/var/tmp/”目录中的文件。对于非默认分区,您需要将文件复制到
/var/partitions/<partition name>/tmp
位置处存在的特定分区的 tmp 目录中。
使用 GUI 导入 HTML 页面
- 导航到 AppExpert > 响应程序 > HTML 页面导入。
- 在 响应程序 HTML 导 入详细信息窗格中,单击 添加。
-
在 HTML 页面导入对象 页面中,设置以下参数:
- 名称。HTML 页面的名称。
- 从导入。从文件、文本或文本导入。
- URL。选择以输入 HTML 文件的 URL 位置。
- 文件。从设备目录中选择 HTML 文件。
- 文本。 选择 HTML 文件作为文本。
- 单击继续。
- 验证响应者 HTML 页面详细信息。
-
单击 Done(完成)。
要编辑 HTML 页面,可以选择一个文件,然后从“选 择操作”下拉列表中单击“编辑响应程序 HTML 页面文件”。