Este tópico descreve os cabeçalhos HTTP adicionais compatíveis com o Application Load Balancer (ALB) e explica como configurá-los para um listener. Use esses cabeçalhos para implementar recursos específicos conforme suas necessidades.
Cabeçalhos compatíveis com o ALB
Os cabeçalhos HTTP são campos na seção de cabeçalho de uma mensagem de solicitação ou resposta HTTP. É possível personalizar cabeçalhos para necessidades específicas, o que pode resultar no uso de cabeçalhos HTTP adicionais por servidores web e navegadores. A tabela a seguir descreve os cabeçalhos HTTP adicionais compatíveis com o ALB e suas funções.
|
Campo de cabeçalho |
Descrição |
Protocolos do listener |
|
X-Forwarded-For |
Permite que o listener use o cabeçalho
Formato:
Para obter instruções sobre como recuperar o endereço IP real do cliente, consulte Recuperar o IP do cliente em um servidor backend. |
|
|
SLB-ID |
Adiciona o cabeçalho |
|
|
X-Forwarded-Proto |
Adiciona o cabeçalho Formato:
Um caso de uso típico: uma instância do ALB usa um listener HTTPS, e a comunicação entre o listener e seu grupo de servidores backend usa HTTP. Nesse cenário, o servidor backend recebe a solicitação com o protocolo HTTP. Se o servidor backend estiver configurado com uma regra para redirecionar automaticamente HTTP para HTTPS, ele poderá determinar incorretamente que o cliente está usando HTTP, causando um loop de redirecionamento. Ao ativar o cabeçalho |
|
|
X-Forwarded-Port |
Adiciona o cabeçalho Formato:
|
|
|
X-Forwarded-Host |
Adiciona o cabeçalho Formato:
|
|
|
X-Forwarded-Client-srcport |
Adiciona o cabeçalho Formato:
|
|
|
X-Forwarded-Clientcert-subjectdn |
Ative o campo de cabeçalho Após ativar este cabeçalho, insira um nome de cabeçalho HTTP personalizado. |
HTTPS |
|
X-Forwarded-Clientcert-issuerdn |
Ative o campo de cabeçalho Após ativar este cabeçalho, insira um nome de cabeçalho HTTP personalizado. |
HTTPS |
|
X-Forwarded-Clientcert-fingerprint |
Ative o campo de cabeçalho Após ativar este cabeçalho, insira um nome de cabeçalho HTTP personalizado. |
HTTPS |
|
X-Forwarded-Clientcert-clientverify |
Ative o campo de cabeçalho Após ativar este cabeçalho, insira um nome de cabeçalho HTTP personalizado. |
HTTPS |
Os cabeçalhos HTTP adicionais mencionados acima são configurados por meio de opções no nível do listener. Quando ativados, o ALB adiciona automaticamente os cabeçalhos correspondentes às solicitações encaminhadas ao servidor backend. Se você precisar personalizar valores de cabeçalho, como especificar o protocolo ou a porta originais da solicitação, defina-os manualmente usando a ação Insert Header em uma regra de encaminhamento. As opções no nível do listener são adequadas para a maioria dos cenários de passagem direta, enquanto as regras de encaminhamento são ideais para cenários que exigem controle refinado sobre os valores dos cabeçalhos. Essas configurações estão localizadas na seção Advanced Settings da configuração do listener e no editor de regras de encaminhamento, respectivamente.
-
Recomendamos que seus servidores backend sigam a especificação HTTP e tratem as chaves de cabeçalhos HTTP sem distinção entre maiúsculas e minúsculas.
O cabeçalho X-Forwarded-For que o ALB encaminha aos servidores backend sempre começa com letra maiúscula.
Para os outros cabeçalhos HTTP adicionais, se a solicitação do cliente já contiver um desses cabeçalhos, o ALB preserva sua capitalização original ao encaminhá-lo. Caso contrário, o ALB adiciona o cabeçalho usando a capitalização mostrada na tabela acima.
Ao ativar X-Forwarded-Clientcert-subjectdn, X-Forwarded-Clientcert-issuerdn, X-Forwarded-Clientcert-fingerprint ou X-Forwarded-Clientcert-clientverify, você não pode definir o nome do cabeçalho HTTP personalizado como nenhum dos seguintes campos reservados:
slb-id,slb-ip,x-forwarded-for,x-forwarded-proto,x-forwarded-eip,x-forwarded-port,x-forwarded-client-srcport,x-forwarded-host,connection,upgrade,content-length,transfer-encoding,keep-alive,te,host,cookie,remoteipouauthority.-
Adicionar um cabeçalho no console
Adicionar um cabeçalho durante a criação do listener
Faça login no console do ALB.
Na barra de navegação superior, selecione a região onde a instância do ALB está implantada.
-
Use um dos seguintes métodos para abrir o assistente de configuração do listener:
Na página Instances, localize a instância que deseja gerencie e clique em Create Listener na coluna Actions.
Na página Instances, clique em no ID da instância de destino. Na aba Listener, clique em Create Listener.
-
No assistente Configure Listener, configure os seguintes parâmetros e clique em Next.
Parâmetro
Descrição
Listener Protocol
Selecione um protocolo para o listener.
Advanced Settings
Clique em Modify para expandir as configurações avançadas.
Custom HTTP Header
Selecione os cabeçalhos HTTP adicionais que deseja ativar com base nos requisitos do seu negócio.
NotaEsta seção descreve apenas os parâmetros relacionados a cabeçalhos. Para mais informações sobre outros parâmetros, consulte os seguintes tópicos:
Siga as instruções na tela para concluir a criação do listener.
Adicionar um cabeçalho a um listener existente
Faça login no console do ALB.
Na barra de navegação superior, selecione a região onde a instância do ALB está implantada.
Na página Instances, clique em no ID da instância de destino.
Na aba Listener, localize o listener de destino e escolha
>Modify Listener na coluna Actions.Na caixa de diálogo Modify Listener, clique em Modify à direita de Advanced Settings.
Na seção Custom HTTP Header, ative ou desative os cabeçalhos conforme necessário e clique em Save.
Adicionar um cabeçalho usando uma API
Você pode configurar cabeçalhos adicionais ao criar um listener ou modifique a configuração de cabeçalhos de um listener existente.
Crie um listener: Chame a operação da API CreateListener e configure o parâmetro XForwardedForConfig.
Modifique um listener existente: Chame a operação da API UpdateListenerAttribute para atualize o parâmetro XForwardedForConfig.
Referências
Console
Para encaminhar solicitações HTTP por meio de uma instância do ALB, consulte Adicionar um listener HTTP.
Para encaminhar solicitações HTTPS por meio de uma instância do ALB, consulte Adicionar um listener HTTPS.
Para encaminhar solicitações QUIC por meio de uma instância do ALB, consulte Adicionar um listener QUIC.
API
CreateListener: Crie um listener HTTP, HTTPS ou QUIC. Você pode adicionar cabeçalhos HTTP definindo o parâmetro XForwardedForConfig.
UpdateListenerAttribute: Atualize a configuração de um listener. Você pode atualize o parâmetro XForwardedForConfig para modifique a configuração de cabeçalhos.