

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 对经典负载均衡器进行故障排除
<a name="elb-troubleshooting"></a>

下表列出了在您使用经典负载均衡器时可为您提供帮助的故障排除资源。


**API 错误**  

| 错误 | 
| --- | 
| [CertificateNotFound: 未定义](ts-elb-error-api-response.md#ts-elb-error-message-certificate) | 
| [OutofService: 发生了暂时性错误](ts-elb-error-api-response.md#ts-elb-error-message-service) | 


**HTTP 错误**  

| 错误 | 
| --- | 
| [HTTP 400：BAD\$1REQUEST](ts-elb-error-message.md#ts-elb-errorcodes-http400) | 
| [HTTP 405：METHOD\$1NOT\$1ALLOWED](ts-elb-error-message.md#ts-elb-errorcodes-http405) | 
| [HTTP 408：请求超时](ts-elb-error-message.md#ts-elb-errorcodes-http408) | 
| [HTTP 502：无效网关](ts-elb-error-message.md#ts-elb-errorcodes-http502) | 
| [HTTP 503：服务不可用](ts-elb-error-message.md#ts-elb-errorcodes-http503) | 
| [HTTP 504：网关超时](ts-elb-error-message.md#ts-elb-errorcodes-http504) | 


**响应代码指标**  

| 响应代码指标 | 
| --- | 
| [HTTPCode\$1ELB\$14XX](ts-elb-http-errors.md#ts-elb-error-metrics-ELB_4XX) | 
| [HTTPCode\$1ELB\$15XX](ts-elb-http-errors.md#ts-elb-error-metrics-ELB_5XX) | 
| [HTTPCode\$1backend\$12xx](ts-elb-http-errors.md#ts-elb-error-metrics-Backend_2XX) | 
| [HTTPCode\$1backend\$13xx](ts-elb-http-errors.md#ts-elb-error-metrics-Backend_3XX) | 
| [HTTPCode\$1backend\$14xx](ts-elb-http-errors.md#ts-elb-error-metrics-Backend_4XX) | 
| [HTTPCode\$1backend\$15xx](ts-elb-http-errors.md#ts-elb-error-metrics-Backend_5XX) | 


**运行状况检查问题**  

| 问题 | 
| --- | 
| [运行状况检查目标页面错误](ts-elb-healthcheck.md#ts-elb-healthcheck-targetpage) | 
| [与实例的连接超时](ts-elb-healthcheck.md#ts-elb-healthcheck-failed) | 
| [公钥身份验证失败](ts-elb-healthcheck.md#ts-elb-healthcheck-publickey) | 
| [实例未从负载均衡器接收流量](ts-elb-healthcheck.md#ts-elb-healthcheck-securitygroup) | 
| [实例上的端口未打开](ts-elb-healthcheck.md#ts-elb-healthcheck-ports) | 
| [Auto Scaling 组中的实例未通过 ELB 运行状况检查](ts-elb-healthcheck.md#ts-elb-healthcheck-autoscaling) | 


**连接问题**  

| 问题 | 
| --- | 
| [客户端无法连接到面向 Internet 的负载均衡器](ts-elb-connection-failed.md#client-cannot-connect) | 
| [负载均衡器无法接收发送到自定义域的请求](ts-elb-connection-failed.md#custom-domain-request) | 
| [发送到负载均衡器的 HTTPS 请求返回“NET:: ERR\$1CERT\$1COMMON\$1NAME\$1INVALID”](ts-elb-connection-failed.md#https-cert-invalid) | 


**实例注册问题**  

| 问题 | 
| --- | 
| [注册 EC2 实例时间过长](ts-elb-register-instance.md#ts-elb-register-too-long) | 
| [无法注册从已付 AMI 启动的实例](ts-elb-register-instance.md#ts-elb-paid-ami-instance) | 

# 对经典负载均衡器进行故障排除：API 错误
<a name="ts-elb-error-api-response"></a>

下面是 Elastic Load Balancing API 返回的错误消息、潜在原因以及可以用于解决问题的步骤。

**Topics**
+ [CertificateNotFound: 未定义](#ts-elb-error-message-certificate)
+ [OutofService: 发生了暂时性错误](#ts-elb-error-message-service)

## CertificateNotFound: 未定义
<a name="ts-elb-error-message-certificate"></a>

**原因 1**：在将使用 AWS 管理控制台创建的证书传播到所有区域时出现延迟。在出现此延迟时，创建负载均衡器过程的最后一步中将显示错误消息。

**解决方案 1**：等待大约 15 分钟，然后重试一次。如果问题仍然存在，请转到 [AWS 支持 Center](https://console.aws.amazon.com/support/home#/) 寻求帮助。

**原因 2**：如果您直接使用 AWS CLI 或 API，则如果您为不存在的证书提供了 Amazon 资源名称 (ARN)，则可能会收到此错误。

**解决方案 2**：使用 AWS Identity and Access Management (IAM) 操作[GetServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServerCertificate.html)获取证书 ARN 并验证您为 ARN 提供的值是否正确。

## OutofService: 发生了暂时性错误
<a name="ts-elb-error-message-service"></a>

**原因**：Elastic Load Balancing 服务或基础网络中出现暂时性内部问题。在 Elastic Load Balancing 查询负载均衡器及其注册实例的运行状况时，也可能发生这种临时问题。

**解决方案**：重新尝试 API 请求。如果问题仍然存在，请转到 [AWS 支持 Center](https://console.aws.amazon.com/support/home#/) 寻求帮助。

# 对经典负载均衡器进行故障排除：HTTP 错误
<a name="ts-elb-error-message"></a>

HTTP 方法 (也称为*动词*) 指定要对接收 HTTP 请求的资源执行的操作。RFC 2616 [方法定义](http://tools.ietf.org/html/rfc2616#section-9)中定义了 HTTP 请求的标准方法。标准方法包括 GET、POST、PUT、HEAD 和 OPTIONS。某些 Web 应用程序需要 (有时会引入) 作为 HTTP/1.1 方法的扩展的方法。HTTP 扩展方法的常见示例包括 PATCH、REPORT、MKCOL、PROPFIND、MOVE 和 LOCK。Elastic Load Balancing 接受所有标准和非标准 HTTP 方法。

HTTP 请求和 HTTP 响应使用标头字段发送有关 HTTP 消息的信息。标头字段为冒号分隔的名称值对，各个值对之间由回车符 (CR) 和换行符 (LF) 进行分隔。RFC 2616 [信息标头](http://tools.ietf.org/html/rfc2616#section-4.2)中定义了标准 HTTP 标头字段集。有关更多信息，请参阅 [HTTP 标头和经典负载均衡器](x-forwarded-headers.md)。

当负载均衡器接收 HTTP 请求时，它会对格式不正确的请求或方法长度进行检查。向负载均衡器发出的 HTTP 请求中的方法总长度不得超过 127 个字符。如果 HTTP 请求通过这两项检查，则负载均衡器将请求发送到 EC2 实例。如果该请求中的方法字段格式不正确，则负载均衡器会以 [HTTP 400：BAD\$1REQUEST](#ts-elb-errorcodes-http400) 错误做出响应。如果请求中方法的长度超过 127 个字符，则负载均衡器会以 [HTTP 405：METHOD\$1NOT\$1ALLOWED](#ts-elb-errorcodes-http405) 错误做出响应。

EC2 实例通过执行请求中的方法并将响应发送回客户端来处理有效请求。实例必须进行配置才能处理支持和不支持的方法。

下面是负载均衡器返回的错误消息、潜在原因以及可以用于解决问题的步骤。

**Topics**
+ [HTTP 400：BAD\$1REQUEST](#ts-elb-errorcodes-http400)
+ [HTTP 405：METHOD\$1NOT\$1ALLOWED](#ts-elb-errorcodes-http405)
+ [HTTP 408：请求超时](#ts-elb-errorcodes-http408)
+ [HTTP 502：无效网关](#ts-elb-errorcodes-http502)
+ [HTTP 503：服务不可用](#ts-elb-errorcodes-http503)
+ [HTTP 504：网关超时](#ts-elb-errorcodes-http504)

## HTTP 400：BAD\$1REQUEST
<a name="ts-elb-errorcodes-http400"></a>

**描述**：表明客户端发送了错误请求。

**原因 1**：客户端发送的请求格式错误，不符合 HTTP 规范。例如，请求的 URL 中不能包含空格。

**原因 2**：客户端使用了 Elastic Load Balancing 不支持的 HTTP CONNECT 方法。

** 解决方案**：直接连接到您的实例并获取客户端请求的详细信息。检查标头和 URL 以了解请求格式是否有误。验证请求是否符合 HTTP 规范。确认未使用 HTTP CONNECT。

## HTTP 405：METHOD\$1NOT\$1ALLOWED
<a name="ts-elb-errorcodes-http405"></a>

**描述**：表示方法长度无效。

** 原因**：请求标头中方法的长度超过了 127 个字符。

** 解决方案**：检查方法的长度。

## HTTP 408：请求超时
<a name="ts-elb-errorcodes-http408"></a>

**描述**：表明客户端取消了请求或未能发送完整请求。

**原因 1**：网络连接中断或错误请求结构，例如，部分成形的标头、指定内容大小与实际传播内容大小不匹配等。

**解决方案 1**：检查提出请求的代码，并尝试将其直接发送至您对检测实际请求拥有更多控制权限的已注册实例 (或开发/测试环境)。

**原因 2**：与客户端的连接关闭 (负载均衡器无法发送响应)

**解决方案 2**：通过在发出请求的计算机上使用数据包嗅探器，在发送响应之前验证客户端是否未关闭连接。

## HTTP 502：无效网关
<a name="ts-elb-errorcodes-http502"></a>

**描述**：表明负载均衡器未能解析来自已注册实例的请求。

**原因**：实例返回格式错误的响应，或负载均衡器可能出现问题。

**解决方案**：验证从实例中发出的响应是否符合 HTTP 规范。转到 [AWS 支持 Center](https://console.aws.amazon.com/support/home#/) 寻求帮助。

## HTTP 503：服务不可用
<a name="ts-elb-errorcodes-http503"></a>

**描述**：表明负载均衡器或已注册实例导致了错误。

**原因 1**：负载均衡器处理请求的容量不足。

**解决方案 1**：这应是一种暂时性问题，持续时间不会超过几分钟。如果问题仍然存在，请转到 [AWS 支持 Center](https://console.aws.amazon.com/support/home#/) 寻求帮助。

**原因 2**：无已注册实例。

**解决方案 2**：在您的负载均衡器被配置响应的每个可用区内注册至少一个实例。通过查看中的`HealthyHostCount`指标来验证这一点 CloudWatch。如果无法确保在每个可用区中都注册了实例，我们建议启用跨区域负载均衡。有关更多信息，请参阅 [配置经典负载均衡器的跨区域负载均衡](enable-disable-crosszone-lb.md)。

**原因 3**：无运行正常的实例。

**解决方案 3**：确保您的负载均衡器被配置响应的每个可用区内均有运行正常的实例。查看 `HealthyHostCount` 指标来核实此项。

**原因 4**：波动队列已满。

**解决方案 4**：确保您的实例具有足够的容量来处理请求速率。查看 `SpilloverCount` 指标来核实此项。

## HTTP 504：网关超时
<a name="ts-elb-errorcodes-http504"></a>

**描述**：表明负载均衡器已关闭连接，因为请求未在空闲超时期限内完成。

**原因 1**：应用程序的响应时间超出了配置的空闲超时。

**解决方案 1**：监控 `HTTPCode_ELB_5XX` 和 `Latency` 指标。如果这些指标有所上升，可能是因为应用程序未在空闲超时期限内做出响应。有关超时的请求的详细信息，请在负载均衡器上启用访问日志并在 Elastic Load Balancing 所生成的日志中查看 504 响应代码。如有必要，您可以扩大容量或增加配置的空闲超时，以便完成时间较长的操作 (例如，上传大型文件)。​有关更多信息，请参阅 [配置经典负载均衡器的空闲连接超时](config-idle-timeout.md) 和 [如何对 Elastic Load Balancing 高延迟进行故障排除](https://repost.aws/knowledge-center/elb-latency-troubleshooting)。

**原因 2**：已注册实例关闭了到 Elastic Load Balancing 的连接。

**解决方案 2**：在您的 EC2 实例上启用保持活动设置，并确保保持活动超时大于负载均衡器的空闲超时设置。

# 对经典负载均衡器进行故障排除：响应代码指标
<a name="ts-elb-http-errors"></a>

您的负载均衡器将发送给客户端 CloudWatch 的 HTTP 响应代码的指标发送给 Amazon，将错误源标识为负载均衡器或注册实例。您可以使用为负载均衡器返回 CloudWatch 的指标来解决问题。有关更多信息，请参阅 [CloudWatch 您的 Classic Load Balancer 的指标](elb-cloudwatch-metrics.md)。

以下是您的负载均衡器返回 CloudWatch 的响应代码指标、潜在原因以及您可以采取的解决问题的步骤。

**Topics**
+ [HTTPCode\$1ELB\$14XX](#ts-elb-error-metrics-ELB_4XX)
+ [HTTPCode\$1ELB\$15XX](#ts-elb-error-metrics-ELB_5XX)
+ [HTTPCode\$1backend\$12xx](#ts-elb-error-metrics-Backend_2XX)
+ [HTTPCode\$1backend\$13xx](#ts-elb-error-metrics-Backend_3XX)
+ [HTTPCode\$1backend\$14xx](#ts-elb-error-metrics-Backend_4XX)
+ [HTTPCode\$1backend\$15xx](#ts-elb-error-metrics-Backend_5XX)

## HTTPCode\$1ELB\$14XX
<a name="ts-elb-error-metrics-ELB_4XX"></a>

**原因**：来自客户端的格式错误的或已取消的请求。

**Solutions**
+ 请参阅 [HTTP 400：BAD\$1REQUEST](ts-elb-error-message.md#ts-elb-errorcodes-http400)。
+ 请参阅 [HTTP 405：METHOD\$1NOT\$1ALLOWED](ts-elb-error-message.md#ts-elb-errorcodes-http405)。
+ 请参阅 [HTTP 408：请求超时](ts-elb-error-message.md#ts-elb-errorcodes-http408)。

## HTTPCode\$1ELB\$15XX
<a name="ts-elb-error-metrics-ELB_5XX"></a>

**原因**：负载均衡器或已注册实例导致了错误或负载均衡器无法解析响应。

**Solutions**
+ 请参阅 [HTTP 502：无效网关](ts-elb-error-message.md#ts-elb-errorcodes-http502)。
+ 请参阅 [HTTP 503：服务不可用](ts-elb-error-message.md#ts-elb-errorcodes-http503)。
+ 请参阅 [HTTP 504：网关超时](ts-elb-error-message.md#ts-elb-errorcodes-http504)。

## HTTPCode\$1backend\$12xx
<a name="ts-elb-error-metrics-Backend_2XX"></a>

**原因**：来自已注册实例的正常成功响应。

**解决方案**：无。

## HTTPCode\$1backend\$13xx
<a name="ts-elb-error-metrics-Backend_3XX"></a>

**原因**：由已注册实例发送的重定向响应。

**解决方案**：查看您的实例中的访问日志或错误日志以确定原因。将请求直接发送到实例 (绕过负载均衡器) 以查看响应。

## HTTPCode\$1backend\$14xx
<a name="ts-elb-error-metrics-Backend_4XX"></a>

**原因**：从已注册实例发送的客户端错误响应。

**解决方案**：查看您的实例中的访问或错误日志以确定原因。将请求直接发送到实例 (绕过负载均衡器) 以查看响应。

**注意**  
如果客户端取消了以 `Transfer-Encoding: chunked` 标头开头的 HTTP 请求，则会出现一个已知问题，即负载均衡器会将此请求转发到实例，即使客户端取消了此请求也是如此。这可能会导致后端错误。

## HTTPCode\$1backend\$15xx
<a name="ts-elb-error-metrics-Backend_5XX"></a>

**原因**：从已注册实例发送的服务器错误响应。

**解决方案**：查看您的实例中的访问日志或错误日志以确定原因。将请求直接发送到实例 (绕过负载均衡器) 以查看响应。

**注意**  
如果客户端取消了以 `Transfer-Encoding: chunked` 标头开头的 HTTP 请求，则会出现一个已知问题，即负载均衡器会将此请求转发到实例，即使客户端取消了此请求也是如此。这可能会导致后端错误。

# 对经典负载均衡器进行故障排除：运行状况检查
<a name="ts-elb-healthcheck"></a>

负载均衡器使用 Elastic Load Balancing 提供的默认运行状况检查配置，或使用您指定的自定义运行状况检查配置来检查已注册实例的运行状况。运行状况检查配置包含协议、ping 端口、ping 路径、响应超时和运行状况检查间隔等信息。如果在运行状况检查间隔内返回 200 响应代码，则会将该实例视为运行状况良好。有关更多信息，请参阅 [对经典负载均衡器中的实例执行运行状况检查](elb-healthchecks.md)。

如果您的部分或所有实例的当前状态为 `OutOfService`，并且描述字段显示消息 `Instance has failed at least the Unhealthy Threshold number of health checks consecutively`，则表示实例未通过负载均衡器运行状况检查。下面是要查找的问题、潜在原因以及可以用于解决问题的步骤。

**Topics**
+ [运行状况检查目标页面错误](#ts-elb-healthcheck-targetpage)
+ [与实例的连接超时](#ts-elb-healthcheck-failed)
+ [公钥身份验证失败](#ts-elb-healthcheck-publickey)
+ [实例未从负载均衡器接收流量](#ts-elb-healthcheck-securitygroup)
+ [实例上的端口未打开](#ts-elb-healthcheck-ports)
+ [Auto Scaling 组中的实例未通过 ELB 运行状况检查](#ts-elb-healthcheck-autoscaling)

## 运行状况检查目标页面错误
<a name="ts-elb-healthcheck-targetpage"></a>

**问题**：在指定的 ping 端口和 ping 路径 (例如 HTTP:80/index.html) 上向实例发出的 HTTP GET 请求收到非 200 的响应代码。

**原因 1**：未在该实例上配置目标页面。

**解决方案 1**：在每个注册的实例上创建目标页面 (例如 `index.html`)，并指定其路径作为 ping 路径。

**原因 2**：响应中的 Content-Length 标头值未设置。

** 解决方案 2**：如果响应包含正文，请将 Content-Length 标头设置为大于等于零的值，或将 Transfer-Encoding 值设置为“chunked”。

**原因 3**：应用程序未配置为从负载均衡器接收请求或返回 200 响应代码。

**解决方案 3**：检查实例上的应用程序以调查原因。

## 与实例的连接超时
<a name="ts-elb-healthcheck-failed"></a>

**问题**：从负载均衡器到 EC2 实例的运行状况检查请求超时或间歇性地失败。

首先，通过直接连接到实例验证问题。我们建议使用实例的私有 IP 地址从网络内连接到实例。

对 TCP 连接使用以下命令：

```
telnet private-IP-address-of-the-instance port
```

对 HTTP 或 HTTPS 连接使用以下命令：

```
curl –I private-IP-address-of-the-instance:port/health-check-target-page
```

如果您使用的是 HTTP/HTTPS 连接并且收到的响应不是 200，请参阅[运行状况检查目标页面错误](#ts-elb-healthcheck-targetpage)。如果能够直接连接到实例，请检查以下各项：

**原因 1**：实例未能在配置的响应超时期内响应。

** 解决方案 1**：调整负载均衡器运行状况检查配置中的响应超时设置。

**原因 2**：实例承担大量负载，从而导致响应时间超出配置的响应超时期。

**解决方案 2**：
+ 检查监控图表了解 CPU 是否使用过度。有关信息，请参阅《Amazon EC2 用户指南》**中的[获取特定 EC2 实例的统计数据](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/US_SingleMetricPerInstance.html)。
+ 通过连接到 EC2 实例来检查其他应用程序资源 (如内存或限制) 的使用情况。
+ 如果需要，请添加更多实例或启用 Auto Scaling。有关更多信息，请参阅 [Amazon EC2 Auto Scaling 用户指南](https://docs.aws.amazon.com/autoscaling/ec2/userguide/)。

**原因 3**：如果您使用的是 HTTP 或 HTTPS 连接，并且对 ping 路径字段中指定的目标页面 (例如 `HTTP:80/index.html`) 执行运行状况检查，则目标页面的响应时间可能会超过配置的超时时间。

** 解决方案 3**：使用更简单的运行状况检查目标页面或调整运行状况检查间隔设置。

## 公钥身份验证失败
<a name="ts-elb-healthcheck-publickey"></a>

**问题**：配置为使用 HTTPS 或 SSL 协议并且启用了后端身份验证的负载均衡器进行公钥身份验证时失败。

** 原因**：SSL 证书上的公钥与负载均衡器上配置的公钥不匹配。请使用 `s_client` 命令查看证书链中的服务器证书的列表。有关更多信息，请参阅 OpenSSL 文档中的 [s\$1client](https://www.openssl.org/docs/man1.1.1/man1/openssl-s_client.html)。

** 解决方案**：您可能需要更新 SSL 证书。如果您的 SSL 证书是最新版本，请尝试在负载均衡器上重新安装它。有关更多信息，请参阅 [替换经典负载均衡器的 SSL 证书](elb-update-ssl-cert.md)。

## 实例未从负载均衡器接收流量
<a name="ts-elb-healthcheck-securitygroup"></a>

**问题**：实例的安全组阻止来自负载均衡器的流量。

对实例执行数据包捕获以验证问题。使用以下 命令：

```
# tcpdump port health-check-port
```

**原因 1**：与实例关联的安全组不允许来自负载均衡器的流量。

** 解决方案 1**：编辑实例安全组以允许来自负载均衡器的流量。添加规则以允许来自负载均衡器安全组的所有流量。

**原因 2**：负载均衡器的安全组不允许流向 EC2 实例的流量。

**解决方案 2**：编辑负载均衡器的安全组以允许流向子网和 EC2 实例的流量。

有关管理安全组的信息，请参阅 [为经典负载均衡器配置安全组](elb-vpc-security-groups.md)。

## 实例上的端口未打开
<a name="ts-elb-healthcheck-ports"></a>

**问题**：端口或防火墙阻止负载均衡器发送到 EC2 实例的运行状况检查。

请使用以下命令验证问题：

```
netstat –ant
```

**原因**：指定的运行状况端口或侦听器端口 (如果配置方式不同) 未打开。为运行状况检查指定的端口和侦听器端口必须都打开并正在进行侦听。

** 解决方案**：在实例上打开侦听器端口和运行状况检查配置中指定的端口 (如果配置为不同端口) 以接收负载均衡器流量。

## Auto Scaling 组中的实例未通过 ELB 运行状况检查
<a name="ts-elb-healthcheck-autoscaling"></a>

**问题**：Auto Scaling 组中的实例通过了默认Auto Scaling 运行状况检查，但未通过 ELB 运行状况检查。

**原因**：Auto Scaling 使用 EC2 状态检查来检测与实例有关的硬件和软件问题，而负载均衡器执行运行状况检查的方式是向实例发送请求并等待 200 响应代码，或与实例建立 TCP 连接（对于基于 TCP 的运行状况检查）。

实例未能通过 ELB 运行状况检查，可能是因为实例中运行的应用程序发生问题，导致负载均衡器将实例视为停止服务。该实例可能通过 Auto Scaling 运行状况检查；它不会被 Auto Scaling 策略替换，因为根据 EC2 状态检查它被视为运行状况良好。

**解决方案**：对 Auto Scaling 组使用 ELB 运行状况检查。使用 ELB 运行状况检查时，Auto Scaling 通过检查实例状态检查和 ELB 运行状况检查的结果来确定实例的运行状况。有关更多信息，请参阅 *Amazon EC2 Auto Scaling 用户指南*中的[向 Auto Scaling 组添加 Elastic Load Balancing 运行状况检查](https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)。

# 对经典负载均衡器进行故障排除：客户端连接
<a name="ts-elb-connection-failed"></a>

## 客户端无法连接到面向 Internet 的负载均衡器
<a name="client-cannot-connect"></a>

如果负载均衡器未响应请求，请检查以下问题：

**您的面向 Internet 的负载均衡器已连接到私有子网**  
您必须为负载均衡器指定公有子网。公有子网有一个指向 Virtual Private Cloud (VPC) 的互联网网关的路由。

**安全组或网络 ACL 不允许流量**  
负载均衡器的安全组和负载均衡器子网的任何网络 ACLs 都必须允许来自客户端的入站流量以及通过侦听器端口流向客户端的出站流量。有关更多信息，请参阅 [为经典负载均衡器配置安全组](elb-vpc-security-groups.md)。

## 负载均衡器无法接收发送到自定义域的请求
<a name="custom-domain-request"></a>

如果负载均衡器无法接收发送到自定义域的请求，请检查以下问题：

**自定义域名无法解析为负载均衡器 IP 地址**  
+ 使用命令行界面确认自定义域名解析为哪个 IP 地址。
  + **Linux、macOS 或 Unix** – 您可以在终端中使用 `dig` 命令。Ex.`dig example.com`
  + **Windows** – 您可以在命令提示符中使用 `nslookup` 命令。Ex.`nslookup example.com`
+ 使用命令行界面确认负载均衡器 DNS 解析为哪个 IP 地址。
+ 比较两个输出的结果。这两个 IP 地址应相匹配。

## 发送到负载均衡器的 HTTPS 请求返回“NET:: ERR\$1CERT\$1COMMON\$1NAME\$1INVALID”
<a name="https-cert-invalid"></a>

如果 HTTPS 请求收到来自负载均衡器的 `NET::ERR_CERT_COMMON_NAME_INVALID`，请查看以下可能的原因：
+ HTTPS 请求中使用的域名与 ACM 证书所关联的侦听器中指定的备用名称不匹配。
+ 正在使用负载均衡器的默认 DNS 名称。无法使用默认 DNS 名称发出 HTTPS 请求，因为无法为 `*.amazonaws.com` 域请求公有证书。

# 对经典负载均衡器进行故障排除：实例注册
<a name="ts-elb-register-instance"></a>

当您使用负载均衡器注册一个实例时，在负载均衡器可以开始向您的实例发送请求之前，您仍需要完成多项步骤。

下面是注册 EC2 实例时负载均衡器可能遇到的问题、潜在原因以及可以用于解决问题的步骤。

**Topics**
+ [注册 EC2 实例时间过长](#ts-elb-register-too-long)
+ [无法注册从已付 AMI 启动的实例](#ts-elb-paid-ami-instance)

## 注册 EC2 实例时间过长
<a name="ts-elb-register-too-long"></a>

**问题**：注册 EC2 实例的时间长于 `InService` 状态下的预期时间。

**原因**：实例可能未通过运行状况检查。在完成最初的实例注册步骤之后 (可能需要约 30 秒)，负载均衡器开始发送运行状况检查请求。在成功通过一次运行状况检查之前，实例不会处于 `InService` 状态。

**解决方案**：请参阅 [与实例的连接超时](ts-elb-healthcheck.md#ts-elb-healthcheck-failed)。

## 无法注册从已付 AMI 启动的实例
<a name="ts-elb-paid-ami-instance"></a>

**问题**：Elastic Load Balancing 未注册使用付费 AMI 启动的实例。

**原因**：您的实例可能是使用[亚马逊](https://aws.amazon.com/devpay/)的付费 AMI 启动的 DevPay。

**解决方案**：Elastic Load Balancing 不支持注册使用[亚马逊](https://aws.amazon.com/devpay/)付费启动 AMIs 的实例 DevPay。请注意，您可以使用来 AMIs 自 [AWS Marketplace](https://aws.amazon.com/marketplace) 的付款。如果您已经在使用来自的付费 AMI AWS Marketplace ，但无法注册从该付费 AMI 启动的实例，请前往[AWS 支持 中心](https://console.aws.amazon.com/support/home#/)寻求帮助。