Citrix ADC

NITRO API

Citrix ADC NITRO 协议允许您通过使用表示状态传输 (REST) 接口以编程方式配置和监视 Citrix ADC 设备。因此,可以用任何编程语言来开发 NITRO 应用程序。此外,对于必须在 Java 或 .NET 或 Python 中开发的应用程序,NITRO API 通过打包为单独的软件开发工具包 (SDK) 的相关库公开。

重要

  • XML API 从 NetScaler 10.5 以后不建议使用。

  • 除非另有规定,此 NITRO 文档适用于 NetScaler 版本 11.0 和 10.5。

要使用 NITRO,您必须基本了解 Citrix ADC 设备,并且必须确保客户端应用程序具有以下内容:

  • 对版本 9.2 或更高版本的 NetScaler 设备的访问权限。

  • 要使用 REST 接口,您必须拥有一个系统才能向 Citrix ADC 设备生成 HTTP 或 HTTPS 请求(JSON 格式的有效负载)。您可以使用任何编程语言或工具。

  • 对于 Java 客户端,您必须具有可用 Java 开发工具包 (JDK) 1.5 或更高版本的系统。JDK 可以从 http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载。

  • 对于 .NET 客户端,您必须安装具有 .NET Framework 3.5 或更高版本的系统。.NET Framework 可以从 http://www.microsoft.com/downloads/zh-cn/default.aspx 中下载。

  • Python 软件开发工具包可从 NetScaler 10.5 开始使用。对于 Python 客户端,您必须安装具有 Python 2.7 或更高版本的系统,并且安装了请求库(在<NITRO_SDK_HOME>/lib中提供)。NITRO 库必须安装在客户端路径上。有关安装说明,请阅读 <NITRO_SDK_HOME>/README.txt 文件。

获取 NITRO 软件包

在 Citrix ADC 设备的配置实用程序的下载页面上,NITRO 软件包可作为 tar 文件提供。您必须将文件下载并取消到本地系统上的文件夹中。此文件夹在本文档中被引用为 <NITRO_SDK_HOME>

该文件夹包含 lib 子文件夹中的 NITRO 库。必须将这些库添加到客户端应用程序类路径中才能访问 NITRO 功能。<NITRO_SDK_HOME> 文件夹还提供了可帮助您了解 NITRO SDK 的示例和文档。

注意:

  • REST 软件包仅包含使用 REST 接口的文档。
  • 对于 Python 软件开发工具包,必须在客户端路径上安装库。有关安装说明,请阅读 <NITRO_SDK_HOME>/README.txt 文件。

NITRO 的工作原理

NITRO 基础结构包括在 Citrix ADC 设备上运行的客户端应用程序和 NITRO Web 服务。客户端应用程序和 NITRO Web 服务之间的通信基于使用 HTTP 或 HTTPS 的 REST 体系结构。

本地化后的图片

如上图所示,NITRO 请求的执行方式如下:

  1. 客户端应用程序将 REST 请求消息发送到 NITRO Web 服务。使用软件开发工具包时,API 调用会转换为相应的 REST 请求消息。
  2. Web 服务处理 REST 请求消息。
  3. NITRO Web 服务将相应的 REST 响应消息返回到客户端应用程序。使用软件开发工具包时,REST 响应消息会转换为 API 调用的适当响应。

要尽量减少 Citrix ADC 网络上的流量,您可以从服务器检索资源的整个状态,在本地修改资源的状态,然后在一个网络事务中将其上传回服务器。例如,要更新负载平衡虚拟服务器,您必须检索对象、更新属性,然后在单个事务中上传已更改的对象。

注意: 对资源的本地操作(更改其属性)不会影响其在服务器上的状态,直到显式上载对象的状态。

NITRO API 本质上是同步的。这意味着客户端应用程序在执行另一个 NITRO API 之前等待来自 NITRO Web 服务的响应。

NITRO API