

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

# 配置经典负载均衡器的跨区域负载均衡
<a name="enable-disable-crosszone-lb"></a>

借助*跨区域负载均衡*，经典负载均衡器的每个负载均衡器节点会跨所有启用的可用区中的已注册实例平均分配请求。如果禁用了跨区域负载均衡，则每个负载均衡器节点会仅在其可用区中的已注册实例之间平均分配请求。有关更多信息，请参阅 *Elastic Load Balancing 用户指南*中的[跨区域负载均衡](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#cross-zone-load-balancing)。

跨区域负载均衡可降低在每个启用的可用区中保持相同数量实例的需求，并提高应用程序处理一个或多个实例丢失情况的能力。但我们仍然建议您在每个已启用的可用区中保持大致相等的实例数，以实现更高的容错能力。

对于客户端缓存 DNS 查找所在的环境，传入请求可能会优先选择一个可用区。通过使用跨区域负载均衡，请求负载中的这种不平衡将分散在此区域中的所有可用实例中，从而减小操作不良的客户端产生的影响。

在创建经典负载均衡器时，跨区域负载均衡的默认值取决于创建负载均衡器的方式。默认情况下，使用 API 或 CLI 时将禁用跨区域负载均衡。使用时 AWS 管理控制台，默认情况下会选择启用跨区域负载平衡的选项。创建经典负载均衡器后，您随时可以启用或禁用跨区域负载均衡。

**Topics**
+ [启用跨区域负载均衡](#enable-cross-zone)
+ [禁用跨区域负载均衡](#disable-cross-zone)

## 启用跨区域负载均衡
<a name="enable-cross-zone"></a>

您随时可以对经典负载均衡器启用跨区域负载均衡。

**使用控制台启用跨区域负载均衡**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格上的 **Load Balancing**（负载均衡）下，选择 **Load Balancers**（负载均衡器）。

1. 选择负载均衡器的名称以打开其详细信息页面。

1. 在**属性**选项卡上，选择**编辑**。

1. 在**编辑负载均衡器属性**页面的**可用区路由配置**部分中，启用**跨可用区负载均衡**。

1. 选择**保存更改**。

**要启用跨区域负载均衡，请使用 AWS CLI**

1. 使用以下[modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elb/modify-load-balancer-attributes.html)命令将您的负载均衡器的`CrossZoneLoadBalancing`属性设置为`true`：

   ```
   aws elb modify-load-balancer-attributes --load-balancer-name my-loadbalancer --load-balancer-attributes "{\"CrossZoneLoadBalancing\":{\"Enabled\":true}}"
   ```

   以下为响应示例：

   ```
   {
      "LoadBalancerAttributes": {
        "CrossZoneLoadBalancing": {
            "Enabled": true
          }
      },
      "LoadBalancerName": "my-loadbalancer"
    }
   ```

1. （可选）使用以下[describe-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-attributes.html)命令验证您的负载均衡器是否已启用跨区域负载均衡：

   ```
   aws elb describe-load-balancer-attributes --load-balancer-name my-loadbalancer
   ```

   以下为响应示例：

   ```
   {
       "LoadBalancerAttributes": {
           "ConnectionDraining": {
               "Enabled": false, 
               "Timeout": 300
           }, 
           "CrossZoneLoadBalancing": {
               "Enabled": true
           }, 
           "ConnectionSettings": {
               "IdleTimeout": 60
           }, 
           "AccessLog": {
               "Enabled": false
           }
       }
   }
   ```

## 禁用跨区域负载均衡
<a name="disable-cross-zone"></a>

您随时可以对负载均衡器禁用跨区域负载均衡选项。

**使用控制台禁用跨区域负载均衡**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格上的 **Load Balancing**（负载均衡）下，选择 **Load Balancers**（负载均衡器）。

1. 选择负载均衡器的名称以打开其详细信息页面。

1. 在**属性**选项卡上，选择**编辑**。

1. 在**编辑负载均衡器属性**页面的**可用区路由配置**部分中，禁用**跨可用区负载均衡**。

1. 选择**保存更改**。

要禁用跨区域负载均衡，请将负载均衡器的 `CrossZoneLoadBalancing` 属性设置为 `false`。

**要禁用跨区域负载均衡，请使用 AWS CLI**

1. 使用以下 [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elb/modify-load-balancer-attributes.html) 命令：

   ```
   aws elb modify-load-balancer-attributes --load-balancer-name my-loadbalancer --load-balancer-attributes "{\"CrossZoneLoadBalancing\":{\"Enabled\":false}}"
   ```

   以下为响应示例：

   ```
   {
      "LoadBalancerAttributes": {
        "CrossZoneLoadBalancing": {
            "Enabled": false
          }
      },
      "LoadBalancerName": "my-loadbalancer"
    }
   ```

1. （可选）使用以下[describe-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-attributes.html)命令验证您的负载均衡器是否已禁用跨区域负载均衡：

   ```
   aws elb describe-load-balancer-attributes --load-balancer-name my-loadbalancer
   ```

   以下为响应示例：

   ```
   {
       "LoadBalancerAttributes": {
           "ConnectionDraining": {
               "Enabled": false, 
               "Timeout": 300
           }, 
           "CrossZoneLoadBalancing": {
               "Enabled": false
           }, 
           "ConnectionSettings": {
               "IdleTimeout": 60
           }, 
           "AccessLog": {
               "Enabled": false
           }
       }
   }
   ```