

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á.

# Listeners para seu Classic Load Balancer
<a name="elb-listener-config"></a>

Antes de começar a usar o Elastic Load Balancing, é preciso configurar um ou mais *listeners* para seu Classic Load Balancer. Um listener é um processo que verifica se há solicitações de conexão. Ele é pré-configurado com um protocolo e uma porta para conexões front-end (cliente para load balancer), além de protocolo e uma porta para conexões back-end (load balancer para instância back-end).

O Elastic Load Balancing suporta os seguintes protocolos:
+ HTTP
+ HTTPS (HTTP seguro)
+ TCP
+ SSL (TCP seguro)

O protocolo HTTPS utiliza o protocolo SSL para estabelecer conexões seguras sobre a layer HTTP. Você também pode usar o protocolo SSL para estabelecer conexões seguras sobre a layer TCP.

Se a conexão front-end usar TCP ou SSL, as conexões back-end poderão usar TCP ou SSL. Se a conexão front-end usar HTTP ou HTTPS, suas conexões back-end poderão usar HTTP ou HTTPS.

As instâncias back-end podem ouvir nas portas 1-65535.

Os load balancers podem ouvir nas seguintes portas: 1-65535

**Topics**
+ [Protocolos](#elb-listener-protocols)
+ [Listeners HTTPS/SSL](#https-ssl-listeners)
+ [Configurações do listener para balanceadores de carga clássicos](using-elb-listenerconfig-quickref.md)
+ [Cabeçalhos HTTP e balanceadores de carga clássicos](x-forwarded-headers.md)

## Protocolos
<a name="elb-listener-protocols"></a>

A comunicação para um aplicativo web típico passa por layers de hardware e software. Cada layer fornece uma função de comunicação específica. O controle sobre a função de comunicação é transmitido de uma layer para a seguinte, em sequência. O Open System Interconnection (OSI) define uma estrutura modelo para a implementação de um formato padrão para comunicação, chamado de *protocolo*, nessas layers. Para obter mais informações, consulte [modelo OSI](https://en.wikipedia.org/wiki/OSI_model) na Wikipédia.

Quando você usa o Elastic Load Balancing, precisa de uma compreensão básica da camada 4 e da camada 7. Layer 4 é a layer de transporte que descreve a conexão do Transmission Control Protocol (TCP) entre o cliente e a instância back-end, por meio do load balancer. Layer 4 é o nível mais baixo configurável para seu load balancer. Layer 7 é a layer do aplicativo que descreve o uso de conexões de Hypertext Transfer Protocol (HTTP) e HTTPS (HTTP seguro) de clientes para o load balancer e do load balancer para a instância back-end.

O protocolo Secure Sockets Layer (SSL) é usado principalmente para criptografar dados confidenciais em redes não seguras, como a Internet. O protocolo SSL estabelece uma conexão segura entre um cliente e o servidor de back-end e garante que todos os dados passados entre seu cliente e seu servidor sejam privados e íntegros.

### Protocolo TCP/SSL
<a name="using-elb-tcp-layer4"></a>

Quando você usa TCP (layer 4) para conexões front-end e back-end, o load balancer encaminhará a solicitação para as instâncias back-end sem modificar os cabeçalhos. Após o load balancer receber a solicitação, ele tentará abrir uma conexão TCP para a instância back-end na porta especificada na configuração do listener.

Como os load balancers interceptam tráfego entre clientes e suas instâncias back-end, os logs de acesso para a sua instância back-end contêm o endereço IP do load balancer em vez do cliente de origem. Você pode habilitar o protocolo de proxy, que adiciona um cabeçalho com as informações de conexão do cliente, como o endereço IP de origem, endereço IP de destino e números de porta. O cabeçalho é, então, enviado para a instância back-end como parte da solicitação. Você pode analisar a primeira linha na solicitação para recuperar as informações de conexão. Para obter mais informações, consulte [Configurar o protocolo de proxy para o Classic Load Balancer](enable-proxy-protocol.md).

Usando essa configuração, você não recebe cookies para perdurabilidade da sessão nem cabeçalhos X-Forwarded.

### Protocolo HTTP/HTTPS
<a name="using-elb-http-layer7"></a>

Quando você usa HTTP (camada 7) para conexões de front-end e back-end, o balanceador de carga analisa os cabeçalhos da solicitação antes de enviar a solicitação para as instâncias de back-end.

Para cada instância registrada e íntegra por trás de um balanceador de HTTP/HTTPS carga, o Elastic Load Balancing abre e mantém uma ou mais conexões TCP. Essas conexões garantem que exista sempre uma conexão estabelecida e pronta para receber solicitações HTTP/HTTPS.

As solicitações HTTP e as respostas HTTP usam campos de cabeçalho para enviar informações sobre as mensagens HTTP. O Elastic Load Balancing suporta cabeçalhos `X-Forwarded-For`. Como os load balancers interceptam o tráfego entre clientes e servidores, os logs de acesso do seu servidor contêm apenas o endereço IP do load balancer. Para ver o endereço IP do cliente, use o cabeçalho da solicitação `X-Forwarded-For`. Para obter mais informações, consulte [X-Forwarded-For](x-forwarded-headers.md#x-forwarded-for).

Quando você usa HTTP/HTTPS, pode ativar as sticky sessions no seu load balancer. Uma sticky session vincula a sessão de um usuário a uma determinada instância back-end. Isso garante que todas as solicitações vindas do usuário durante a sessão sejam enviadas para a mesma instância back-end. Para obter mais informações, consulte [Configurar sessões persistentes para seu Classic Load Balancer](elb-sticky-sessions.md).

Nem todas os extensões de HTTP são suportadas pelo load balancer. Pode ser necessário usar um listener TCP se o load balancer não for capaz de encerrar a solicitação em decorrência de métodos, códigos de resposta ou outras implementações inesperadas de HTTP 1.0/1.1 não padrão.

## Listeners HTTPS/SSL
<a name="https-ssl-listeners"></a>

Você pode criar um load balancer com os recursos de segurança a seguir.

### Certificados do servidor SSL
<a name="ssl-cert"></a>

Se você usar HTTPS ou SSL para suas conexões front-end, deverá implantar um certificado X.509 (certificado de servidor SSL) no seu load balancer. O load balancer descriptografa solicitações de clientes antes de enviá-las para as instâncias back-end (conhecidas como *terminação SSL*). Para obter mais informações, consulte [Certificados SSL/TLS para balanceadores de carga clássicos](ssl-server-cert.md).

Se você não quiser que o load balancer lide com a terminação SSL (conhecida como *SSL Offloading*), pode usar o TCP para as conexões front-end e back-end e implantar certificados nas instâncias registradas que lidam com as solicitações.

### Negociação SSL
<a name="using-elb-cipher-settings"></a>

O Elastic Load Balancing oferece configurações de negociação SSL predefinidas usadas para a negociação SSL quando é estabelecida uma conexão entre um cliente e seu balanceador de carga. As configurações de negociação SSL fornecem compatibilidade com uma ampla gama de clientes e usam algoritmos criptográficos de alta robustez chamados *cifras*. No entanto, alguns casos de uso podem exigir que todos os dados da rede sejam criptografados e permitam apenas cifras específicas. Alguns padrões de conformidade de segurança (como PCI, SOX, etc.) podem exigir um conjunto específico de protocolos e cifras dos clientes para garantir que os padrões de segurança sejam atendidos. Em tais casos, você pode criar uma configuração de negociação SSL personalizada, com base em suas necessidades específicas. Sua cifras e seus protocolos devem entrar em vigor dentro de 30 segundos. Para obter mais informações, consulte [Configurações de negociação SSL para balanceadores de carga clássicos](elb-ssl-security-policy.md).

### Autenticação do servidor backend
<a name="using-elb-backend-auth"></a>

Se você usar HTTPS ou SSL para suas conexões back-end, poderá habilitar a autenticação das suas instâncias registradas. Então, você poderá usar o processo de autenticação para garantir que as instâncias aceitem apenas comunicação criptografada, e para garantir que cada instância registrada tenha a chave pública correta.

Para obter mais informações, consulte [Configurar autenticação do servidor back-end](elb-create-https-ssl-load-balancer.md#configure_backendauth_clt).

# Configurações do listener para balanceadores de carga clássicos
<a name="using-elb-listenerconfig-quickref"></a>

A tabela a seguir descreve as configurações possíveis para receptores HTTP e HTTPS de um Classic Load Balancer.


| Caso de uso | Protocolo de front-end | Opções de front-end | Protocolo de backend | Opções de backend | Observações | 
| --- | --- | --- | --- | --- | --- | 
| Load balancer HTTP básico | HTTP | NA | HTTP | NA |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/elasticloadbalancing/latest/classic/using-elb-listenerconfig-quickref.html)  | 
| Proteja o site ou a aplicação usando o Elastic Load Balancing para descarregar a descriptografia SSL | HTTPS | [Negociação SSL](elb-ssl-security-policy.md) | HTTP | NA |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/elasticloadbalancing/latest/classic/using-elb-listenerconfig-quickref.html)  | 
| Site ou aplicativo seguro usando end-to-end criptografia | HTTPS | [Negociação SSL](elb-ssl-security-policy.md) | HTTPS | Autenticação de back-end |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/elasticloadbalancing/latest/classic/using-elb-listenerconfig-quickref.html)  | 

A tabela a seguir descreve as configurações possíveis para receptores TCP e SSL de um Classic Load Balancer.


| Caso de uso | Protocolo de front-end | Opções de front-end | Protocolo de backend | Opções de backend | Observações | 
| --- | --- | --- | --- | --- | --- | 
| Load balancer TCP básico | TCP | NA | TCP | NA |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/elasticloadbalancing/latest/classic/using-elb-listenerconfig-quickref.html)  | 
| Proteja o site ou a aplicação usando o Elastic Load Balancing para descarregar a descriptografia SSL | SSL | [Negociação SSL](elb-ssl-security-policy.md) | TCP | NA |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/elasticloadbalancing/latest/classic/using-elb-listenerconfig-quickref.html)  | 
| Proteja o site ou aplicativo usando end-to-end criptografia com o Elastic Load Balancing | SSL | [Negociação SSL](elb-ssl-security-policy.md) | SSL | Autenticação de back-end |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/elasticloadbalancing/latest/classic/using-elb-listenerconfig-quickref.html)  | 

# Cabeçalhos HTTP e balanceadores de carga clássicos
<a name="x-forwarded-headers"></a>

As solicitações HTTP e as respostas HTTP usam campos de cabeçalho para enviar informações sobre as mensagens HTTP. Os campos de cabeçalho são pares de nome-valor separados por dois pontos e separados por um retorno de carro (CR) e um avanço de linha (LF). Um conjunto padrão de campos de cabeçalho HTTP está definido na RFC 2616, [ Cabeçalhos de mensagem](https://datatracker.ietf.org/doc/html/rfc2616#section-4.2). Há também cabeçalhos HTTP não padrão disponíveis (e adicionados automaticamente), que são amplamente usados pelas aplicações. Alguns dos cabeçalhos HTTP não padrão possuem um prefixo `X-Forwarded`. Os balanceadores de carga clássicos são compatíveis com os seguintes cabeçalhos `X-Forwarded`.

Para obter mais informações sobre conexões HTTP, consulte [Roteamento de solicitação](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#request-routing) no *Manual do usuário do Elastic Load Balancing*.

**Pré-requisitos**
+ Confirme se as configurações do seu listener são compatíveis com cabeçalhos X-Forwarded. Para obter mais informações, consulte [Configurações do listener para balanceadores de carga clássicos](using-elb-listenerconfig-quickref.md).
+ Configure o servidor web para registrar em log os endereços IP do cliente.

**Topics**
+ [X-Forwarded-For](#x-forwarded-for)
+ [X-Forwarded-Proto](#x-forwarded-proto)
+ [X-Forwarded-Port](#x-forwarded-port)

## X-Forwarded-For
<a name="x-forwarded-for"></a>

O cabeçalho de solicitação `X-Forwarded-For` é adicionado automaticamente e ajuda você a identificar o endereço IP de um cliente quando usar um balanceador de carga HTTP ou HTTPS. Como os load balancers interceptam o tráfego entre clientes e servidores, os logs de acesso do seu servidor contêm apenas o endereço IP do load balancer. Para ver o endereço IP do cliente, use o cabeçalho da solicitação `X-Forwarded-For`. O Elastic Load Balancing armazena o endereço IP do cliente no cabeçalho de solicitação `X-Forwarded-For` e encaminha o cabeçalho para o seu servidor. Se o cabeçalho de solicitação `X-Forwarded-For` não estiver incluído na solicitação, o balanceador de carga criará um com o endereço IP do cliente como o valor da solicitação. Caso contrário, o balanceador de carga anexará o endereço IP do cliente ao cabeçalho existente e encaminhará o cabeçalho para o seu servidor. O cabeçalho de solicitação `X-Forwarded-For` pode conter vários endereços IP separados por vírgula. O endereço mais à esquerda é o IP do cliente, onde a solicitação foi feita pela primeira vez. Ele é seguido por quaisquer identificadores de proxy subsequentes em cadeia.

O cabeçalho de solicitação `X-Forwarded-For` leva a seguinte forma:

```
X-Forwarded-For: client-ip-address
```

Veja a seguir um exemplo de cabeçalho de solicitação `X-Forwarded-For` para um cliente com o endereço IP `203.0.113.7`.

```
X-Forwarded-For: 203.0.113.7
```

Veja a seguir um exemplo de cabeçalho de `X-Forwarded-For` solicitação para um cliente com um IPv6 endereço de`2001:DB8::21f:5bff:febf:ce22:8a2e`.

```
X-Forwarded-For: 2001:DB8::21f:5bff:febf:ce22:8a2e
```

## X-Forwarded-Proto
<a name="x-forwarded-proto"></a>

O cabeçalho da solicitação `X-Forwarded-Proto` ajuda você a identificar o protocolo (HTTP ou HTTPS) que um cliente usou para se conectar ao seu load balancer. Os logs de acesso do servidor contêm apenas o protocolo usado entre o servidor e o load balancer; eles não contêm informações sobre o protocolo usado entre o cliente e o load balancer. Para determinar o protocolo usado entre o cliente e o balanceador de carga, use o cabeçalho de solicitação `X-Forwarded-Proto`. O Elastic Load Balancing armazena o protocolo usado entre o cliente e o balanceador de carga no cabeçalho da solicitação `X-Forwarded-Proto` e encaminha o cabeçalho para seu servidor.

O aplicativo ou o site podem usar o protocolo armazenado no cabeçalho da solicitação `X-Forwarded-Proto` para renderizar uma resposta que redireciona para o URL apropriado.

O cabeçalho de solicitação `X-Forwarded-Proto` leva a seguinte forma:

```
X-Forwarded-Proto: originatingProtocol
```

O exemplo a seguir contém um cabeçalho de solicitação `X-Forwarded-Proto` para uma solicitação originada do cliente como solicitação de HTTPS:

```
X-Forwarded-Proto: https
```

## X-Forwarded-Port
<a name="x-forwarded-port"></a>

O cabeçalho de solicitação `X-Forwarded-Port` ajuda a identificar a porta de destino que o cliente usou para se conectar ao load balancer.