HTTP 或 HTTPS 通信失败时,NSX Advanced Load Balancer 会使用各种错误代码进行响应。本节介绍从服务器返回的一些常见 HTTP 错误代码。

NSX Advanced Load Balancer 使用以下 HTTP 错误代码进行响应:

  • 4xx 错误代码:如果客户端请求中存在错误,则 NSX Advanced Load Balancer 将使用 4xx 进行响应。

  • 5xx 错误代码:如果负载均衡失败或与服务器通信时出错。

  • 500 错误代码:如果 NSX Advanced Load Balancer 存在内部错误,例如内存分配失败或 DataScript 异常。

错误代码详细信息

错误代码

错误

描述

400

错误的请求

此状态代码表示 NSX Advanced Load Balancer 在解析请求行时遇到错误。

示例:

  • 请求行或标头行无效。

  • 主机或 HTTP 版本无效。

  • 无法解析 URI。

401

请求未授权

此错误状态响应代码表示 LDAP 身份验证失败。

示例:

  • 缺少一个或多个 LDAP 标头。

  • 缺少凭据。

  • 登录失败。

403

请求被禁止

此错误状态响应代码表示 NSX Advanced Load Balancer 已收到并识别请求,但拒绝代理请求。请求特定资源的用户没有必要的权限时,可能会出现此错误。

示例:

  • 在实施模式下运行时,这是 WAF 的默认错误代码。

405

方法不允许使用

当请求的 GET 方法对访问特定资源或应用程序无效时,会出现此问题。

示例:

  • RUM 仅允许 GET/POST 方法,无法处理来自客户端的 RUM 参数。

408

请求超时

在等待来自客户端的请求标头或正文时,NSX Advanced Load Balancer 将由于请求超时而终止未使用的连接。

413

负载太大

此状态代码表示请求负载太大。以下是对 414 问题进行故障排除的步骤:

  • 在应用程序配置文件的 DOS 设置中检查客户端 Post 请求正文大小。

  • 在实施模式下运行时,WAF 也可能返回此错误代码。检查 WAF 配置文件中的上载限制。

414

URI 太长

此状态代码表示客户端请求的 URI 长于为虚拟服务配置的允许长度。要进行故障排除,请在应用程序配置文件的 DOS 设置下检查客户端请求大小。

416

不满足范围条件

此响应代码表示虚拟服务无法处理请求的范围。范围标头的值可能无效。

429

请求过多

此错误代码表示用户在给定持续时间内发送的请求过多。检查应用程序配置文件中的 DOS 设置,以及 HTTP 策略的速率限制设置。

470

关闭连接

此状态代码表示 NSX Advanced Load Balancer 由于以下原因而关闭了连接:

  • HTTP 网络或安全策略操作设置为“关闭连接”。

  • 数据脚本执行 avi.http.close_conn()。

  • 池失败操作设置为“关闭连接”。

471

请求标头过大

此状态表示其中一个 http 请求标头过大,无法处理。检查应用程序配置文件 DOS 设置下的客户端标头大小。

472

客户端证书验证失败

此状态表示 NSX Advanced Load Balancer 无法验证客户端的 SSL 证书。

473

客户端无法发送证书

此状态表示 NSX Advanced Load Balancer 已关闭连接,因为它要求客户端提供证书,但客户端无法发送证书进行验证。要进行故障排除,请查看“应用程序配置文件安全性”设置下的“客户端 SSL 证书验证”部分,以及应用程序配置文件安全设置下的客户端 SSL 证书配置。

474

向 HTTPS 端口发送 HTTP 请求

此状态表示客户端以纯文本形式向为虚拟服务配置的 HTTPS 服务端口发送 HTTP 请求。

475

服务器正在处理请求时客户端关闭了连接

此状态表示客户端在 NSX Advanced Load Balancer 将其代理到服务器时关闭了连接。

500

内部服务器错误

内部错误,如内存分配失败或请求中的配置意外不一致。

502

错误的网关

如果在将请求代理到服务器时出现错误(例如服务器证书验证失败或服务器突然关闭连接),则会发生此错误。例如:

  • 验证上游服务器的证书失败。

  • SSL 池的公用名称检查失败。

503

服务不可用

由于以下原因,无法连接到上游服务器:

  • 选定的上游服务器已关闭。

  • 已达到池的每服务器最大并发连接数。

504

网关超时

此响应代码表示由于以下原因之一导致的连接超时:

  • 从服务器中读取或向服务器写入正文时超时。

  • 将正文写入客户端时超时。