NetScaler Console 作为 API 代理服务器

Last published : Oct 06, 2026
除了能够接收用于自身管理和分析功能的 NITRO REST API 请求之外,NetScaler Application Delivery Management (NetScaler Console) 还可以作为其托管实例的 REST API 代理服务器。REST API 客户端无需直接向托管实例发送 API 请求,而是可以将 API 请求发送到 NetScaler Console。NetScaler Console 可以区分它必须响应的 API 请求和必须原封不动地转发给托管实例的 API 请求。
作为 API 代理服务器,NetScaler Console 为您提供以下优势:
  • API 请求验证。NetScaler Console 根据配置的安全和基于角色的访问控制 (RBAC) 策略验证所有 API 请求。NetScaler Console 还具有租户感知能力,可确保 API 活动不会跨越租户边界。
  • 集中审计。NetScaler Console 维护与其托管实例相关的所有 API 活动的审计日志。
  • 会话管理。NetScaler Console 使 API 客户端无需维护与托管实例的会话。
作为 API 代理服务器,NetScaler Console 支持管理员分区。

NetScaler Console 如何作为 API 代理服务器工作

当您希望 NetScaler Console 将请求转发到托管实例时,您可以配置 API 客户端,使其在 API 请求中包含以下任一 HTTP 标头:
标头值 描述
MPS-API-PROXY-MANAGED-INSTANCE-NAME 托管实例的名称。
MPS-API-PROXY-MANAGED-INSTANCE-IP 托管实例的 IP 地址。
MPS-API-PROXY-MANAGED-INSTANCE-ID 受管实例的 ID。
MPS-API-PROXY-TIMEOUT NITRO API 请求的超时值。以秒为单位设置超时值。当您设置代理超时时,NetScaler Console 会等待指定的持续时间,然后请求才会超时。
MPS-API-PROXY-MANAGED-INSTANCE-USERNAME 访问受管 NetScaler 实例的用户名。
MPS-API-PROXY-MANAGED-INSTANCE-PASSWORD 访问受管 NetScaler 实例的密码。
MPS-API-PROXY-MANAGED-INSTANCE-SESSID 访问受管实例的会话 ID。
注意
在 设置 > 管理 > 系统配置 > 基本设置 中,如果选择 提示实例登录凭据,请确保配置受管实例的用户名和密码。或者,您也可以指定实例会话 ID。
任何这些 HTTP 标头的存在都有助于 NetScaler Console 将 API 请求识别为必须转发到受管实例的请求。标头的值有助于 NetScaler Console 识别必须转发请求到的受管实例。
下图描述了此流程:
设备 API
如上图所示,当请求中出现这些 HTTP 标头之一时,NetScaler Console 会按如下方式处理请求:
  1. NetScaler Console 不修改请求,直接将请求转发到实例 API 代理引擎。
  2. 实例 API 代理引擎将 API 请求转发给验证器,并在审计日志中记录 API 请求的详细信息。
  3. 验证器确保请求不违反配置的安全策略、RBAC 策略、租户边界等。它还会执行额外检查,例如检查托管实例是否可用。
如果 API 请求有效且可以转发到托管实例,NetScaler Console 会识别由实例会话管理器维护的会话,然后将请求发送到托管实例。
注意
确保提示实例登录凭据选项已禁用。为此,请执行以下操作:
  1. 导航到设置 > 管理。
  2. 在系统配置中,选择系统、时区、允许的 URL 和每日消息。

如何将 NetScaler Console 用作 API 代理服务器

以下示例显示了 API 客户端发送到 IP 地址为 192.0.2.5 的 NetScaler Console 服务器的 REST API 请求。NetScaler Console 需要将请求原封不动地转发到 IP 地址为 192.0.2.10 的托管实例。所有示例都使用 MPS-API-PROXY-MANAGED-INSTANCE-IP 标头。
在向 NetScaler Console 发送 API 请求之前,API 客户端必须:
  • 登录 NetScaler Console
  • 获取会话 ID
  • 在后续 API 请求中包含会话 ID。
登录 API 请求格式如下:
    POST /nitro/v1/config/login
    Content-Type: application/json

    {
        "login": {
            "username":"nsroot",
            "password":"nsroot"
         }
    }
NetScaler Console 会响应登录请求,响应中包含会话 ID。以下示例响应正文显示了一个会话 ID:
{

  "errorcode": 0,

  "message": "Done",

  "operation": "add",

  "resourceType": "login",

  "username": "***********",

  "tenant_name": "Owner",

  "resourceName": "nsroot",

  "login": [

    {

      "tenant_name": "Owner",

      "permission": "superuser",

      "session_timeout": "36000",

      "challenge_token": "",

      "username": "",

      "login_type": "",

      "challenge": "",

      "client_ip": "",

      "client_port": "-1",

      "cert_verified": "false",

      "sessionid": "##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D",

      "token": "b2f3f935e93db6a"
    }

  ]

}

示例 1:检索负载均衡虚拟服务器统计信息

客户端必须向 NetScaler Console 发送以下格式的 API 请求:
GET /nitro/v1/stat/lbvserver
Content-type: application/json
MPS-API-PROXY-MANAGED-INSTANCE-IP: 192.0.2.10
SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D
其中 Cookie Header 的值是登录 API 调用返回的会话 ID。MPS-API-PROXY-MANAGED-INSTANCE-IP 的值是 NetScaler 的 IP 地址。

示例 2:创建负载均衡虚拟服务器

客户端必须向 NetScaler Console 发送以下格式的 API 请求:

    POST /nitro/v1/config/lbvserver/sample_lbvserver
    Content-type: application/json
    Accept-type: application/json
    MPS-API-PROXY-MANAGED-INSTANCE-IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D

    {
         "lbvserver":{
             "name":"sample_lbvserver",
             "servicetype":"HTTP",
             "ipv46":"10.102.1.11",
             "port":"80"
         }
    }

示例 3:修改负载均衡虚拟服务器

客户端必须向 NetScaler Console 发送以下格式的 API 请求:
    PUT /nitro/v1/config/lbvserver
    Content-type: application/json
    Accept-type: application/json
    MPS-API-PROXY-MANAGED-INSTANCE-IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D

    {
       "lbvserver":{
            "name":"sample_lbvserver",
            "appflowlog":"DISABLED"
       }
    }

示例 4:删除负载均衡虚拟服务器

客户端必须向 NetScaler Console 发送以下格式的 API 请求:
    DELETE /nitro/v1/config/lbvserver/sample_lbvserver
    Accept-type: application/json
    MPS-API-PROXY-MANAGED-INSTANCE-IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D

示例 5:下载 NetScaler 上的 CLI 运行配置

客户端必须向 NetScaler Console 发送以下格式的 API 请求:
    GET /nitro/v1/config/nsrunningconfig
    Accept-type: application/json
    MPS-API-PROXY-MANAGED-INSTANCE-IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D