

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurar o protocolo de proxy para o Classic Load Balancer
<a name="enable-proxy-protocol"></a>

O protocolo de proxy é um protocolo de Internet usado para transportar informações de conexão da origem que solicita a conexão ao destino ao qual a conexão foi solicitada. O Elastic Load Balancing usa o protocolo de proxy versão 1, que usa um formato de cabeçalho legível por humanos.

Por padrão, quando você usa o Transmission Control Protocol (TCP) para conexões front-end e backend, o Classic Load Balancer encaminha solicitações para as instâncias sem modificar os cabeçalhos de solicitação. Se você habilitar o protocolo de proxy, um cabeçalho legível por humanos será adicionado ao cabeçalho de solicitação com informações de conexão, como o endereço IP de origem, endereço IP de destino e números de portas. O cabeçalho, então, será enviado à instância como parte da solicitação.

**nota**  
O Console de gerenciamento da AWS não suporta a ativação do protocolo proxy.

**Topics**
+ [Cabeçalho do protocolo de proxy](#proxy-protocol)
+ [Pré-requisitos para habilitar o protocolo de proxy](#proxy-protocol-prerequisites)
+ [Ative o protocolo proxy usando o AWS CLI](#enable-proxy-protocol-cli)
+ [Desative o protocolo proxy usando o AWS CLI](#proxy-protocol-disable-policy-cli)

## Cabeçalho do protocolo de proxy
<a name="proxy-protocol"></a>

O cabeçalho do protocolo de proxy ajuda você a identificar o endereço IP de um cliente quando você tiver um balanceador de carga que usa TCP para conexões backend. Como os load balancers interceptam tráfego entre clientes e suas instâncias, os logs de acesso da sua instância contêm o endereço IP do load balancer em vez do cliente de origem. Você pode analisar a primeira linha da solicitação para recuperar o endereço IP do cliente e o número da porta.

O endereço do proxy no cabeçalho de IPv6 é o IPv6 endereço público do seu balanceador de carga. Esse IPv6 endereço corresponde ao endereço IP que é resolvido a partir do nome DNS do seu balanceador de carga, que começa com ou`ipv6`. `dualstack` Se o cliente se conectar com IPv4, o endereço do proxy no cabeçalho será o IPv4 endereço privado do balanceador de carga, que não pode ser resolvido por meio de uma pesquisa de DNS.

A linha do protocolo de proxy é uma única linha que termina com um retorno de carro e feed de linha (`"\r\n"`) e tem o seguinte formato:

```
PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"
```

**Exemplo: IPv4.**  
Veja a seguir um exemplo da linha de protocolo proxy para IPv4.

```
PROXY TCP4 198.51.100.22 203.0.113.7 35646 80\r\n
```

## Pré-requisitos para habilitar o protocolo de proxy
<a name="proxy-protocol-prerequisites"></a>

Antes de começar, faça o seguinte:
+ Confirme se o balanceador de carga não está por trás de um servidor de proxy com o protocolo de proxy habilitado. Se o protocolo de proxy estiver habilitado tanto no servidor de proxy quanto no balanceador de carga, este adicionará outro cabeçalho à solicitação, que já tem um cabeçalho do servidor de proxy. Dependendo de como sua instância estiver configurada, essa duplicação poderá resultar em erros.
+ Confirme se suas instâncias podem processar as informações do protocolo de proxy.
+ Confirme se as configurações do seu listener são compatíveis com o protocolo de proxy. Para obter mais informações, consulte [Configurações do listener para balanceadores de carga clássicos](using-elb-listenerconfig-quickref.md).

## Ative o protocolo proxy usando o AWS CLI
<a name="enable-proxy-protocol-cli"></a>

Para habilitar o protocolo de proxy, você precisa criar uma política do tipo `ProxyProtocolPolicyType` e, em seguida, habilitar a política na porta da instância.

Use o procedimento a seguir para criar uma nova política para o load balancer do tipo `ProxyProtocolPolicyType`, definir a política recém-criada para a instância na porta `80` e verificar se a política está ativada.

**Para habilitar o Proxy Protocol para o load balancer**

1. (Opcional) Use o seguinte comando [describe-load-balancer-policy-types](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancer-policy-types.html) para listar as políticas suportadas pelo Elastic Load Balancing:

   ```
   aws elb describe-load-balancer-policy-types
   ```

   A resposta inclui os nomes e as descrições dos tipos de política suportados. A tabela a seguir mostra a saída para o tipo `ProxyProtocolPolicyType`:

   ```
   {
       "PolicyTypeDescriptions": [
           ...
           {
               "PolicyAttributeTypeDescriptions": [
                   {
                       "Cardinality": "ONE",
                       "AttributeName": "ProxyProtocol",
                       "AttributeType": "Boolean"
                   }
               ],
               "PolicyTypeName": "ProxyProtocolPolicyType",
               "Description": "Policy that controls whether to include the IP address and port of the originating 
   request for TCP messages. This policy operates on TCP/SSL listeners only"
           },
           ...
       ]
   }
   ```

1. Use o [create-load-balancer-policy](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-policy.html)comando a seguir para criar uma política que habilite o protocolo proxy:

   ```
   aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-ProxyProtocol-policy --policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=true
   ```

1. Use o seguinte for-backend-server comando [set-load-balancer-policies-](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-for-backend-server.html) para habilitar a política recém-criada na porta especificada. Observe que esse comando substitui o conjunto atual de políticas habilitadas. Portanto, a opção `--policy-names` deve especificar tanto a política que você está adicionando à lista (por exemplo, `my-ProxyProtocol-policy`) quanto quaisquer políticas que estejam atualmente habilitadas (por exemplo, `my-existing-policy`).

   ```
   aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 80 --policy-names my-ProxyProtocol-policy my-existing-policy
   ```

1. (Opcional) Use o [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html)comando a seguir para verificar se o protocolo proxy está ativado:

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

   A resposta inclui as informações a seguir, que mostra que a política `my-ProxyProtocol-policy` está associada com a porta `80`.

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ...
               "BackendServerDescriptions": [
                   {
                       "InstancePort": 80, 
                       "PolicyNames": [
                           "my-ProxyProtocol-policy"
                       ]
                   }
               ], 
               ...
           }
       ]
   }
   ```

## Desative o protocolo proxy usando o AWS CLI
<a name="proxy-protocol-disable-policy-cli"></a>

Você pode desativar as políticas associadas à sua instância e, em seguida, habilitá-las posteriormente.

**Para desabilitar a política do protocolo de proxy**

1. Use o seguinte for-backend-server comando [set-load-balancer-policies-](https://docs.aws.amazon.com/cli/latest/reference/elb/set-load-balancer-policies-for-backend-server.html) para desativar a política do protocolo proxy omitindo-a da `--policy-names` opção, mas incluindo as outras políticas que devem permanecer habilitadas (por exemplo,`my-existing-policy`).

   ```
   aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 80 --policy-names my-existing-policy
   ```

   Se não houver outras políticas para habilitar, especifique uma string vazia com a opção `--policy-names`, da seguinte forma:

   ```
   aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 80 --policy-names "[]"
   ```

1. (Opcional) Use o [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html)comando a seguir para verificar se a política está desativada:

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

   A resposta inclui as informações a seguir, que mostram que nenhuma porta está associada com uma política.

   ```
   {
       "LoadBalancerDescriptions": [
           {
               ...
               "BackendServerDescriptions": [],
               ...
           }
       ]
   }
   ```