Configure o cabeçalho Host para controlar para qual aplicação de backend o API Gateway encaminha as requisições e escolha o método adequado à sua configuração de backend.
Como funciona o cabeçalho Host
O cabeçalho Host indica ao API Gateway qual aplicação ou site de backend deve receber a requisição quando várias aplicações compartilham o mesmo endereço IP do servidor. Um cenário comum:
O serviço de backend é do tipo virtual private cloud (VPC) e há várias aplicações ou sites em execução na VPC associada. O cabeçalho Host identifica para qual deles encaminhar a requisição.
Quando configurar o cabeçalho Host: apenas quando seu backend utiliza roteamento baseado em host virtual (várias aplicações atrás de um único IP). Se o backend for um servidor dedicado, o comportamento padrão geralmente é suficiente — o API Gateway define o cabeçalho Host com o endereço de backend configurado.
O API Gateway oferece cinco métodos de configuração. Quando vários métodos estão ativos, a seguinte ordem de prioridade determina qual prevalece:
|
Prioridade |
Método |
|
1 (mais alta) |
Plug-in de roteamento de backend ( |
|
2 |
Configuração do serviço de backend |
|
3 |
Autorização de acesso à VPC |
|
4 |
Configuração do grupo de APIs (Pass Host Header) |
|
5 (mais baixa) |
Definição da API (parâmetro constante |
Configurar o cabeçalho Host
Escolha o método apropriado para sua configuração de backend e siga as etapas correspondentes.
Método 1: Ativar Pass Host Header no grupo de APIs
Esta opção encaminha o cabeçalho Host original do cliente para o backend, em vez de usar o endereço de backend configurado.
Comportamento padrão (Pass Host Header desativado):
Host: backend.test.com ← API Gateway uses your configured backend address
Com Pass Host Header ativado:
Host: apigateway.test.com ← API Gateway forwards the client's original Host header
Para ativar:
Faça login no console do API Gateway.
No painel de navegação à esquerda, selecione API Management > API Groups.
Clique em no nome do grupo de APIs desejado.
Localize a chave Pass Host Header e ative-a.
Método 2: Adicionar o parâmetro constante host na definição da API
Ao criar uma API, adicione um parâmetro constante chamado host. Defina Parameter Location como Head e insira o nome de domínio do backend como valor do parâmetro.
Método 3: Configurar o parâmetro Host na autorização de acesso à VPC
Faça login no console do API Gateway.
No painel de navegação à esquerda, selecione .
No canto superior direito, clique em Create Authorization.
Selecione a região onde a VPC está localizada e clique em Create Authorization.
-
Na caixa de diálogo Create VPC Access Authorization, configure os seguintes parâmetros:
Region
VPC Authorization Name: de 4 a 50 caracteres
VPC ID
Instance ID or Address: aceita IDs de instâncias ECS ou SLB, IPs privados ou nomes de domínio internos do ALB
Port
Host: insira o valor desejado para o cabeçalho Host
Clique em OK.
Método 4: Configurar um host para o serviço de backend
Faça login no console do API Gateway.
No painel de navegação à esquerda, selecione .
No canto superior direito, clique em Create Backend Service e crie um serviço de backend do tipo HTTP/HTTPS ou VPC. Somente esses dois tipos aceitam configurações de host.
Após criar o serviço de backend, localize-o na lista e clique em Configure Backend Service and View Associated APIs na coluna Actions.
Na página Backend Service Definition, clique em na aba do ambiente desejado (por exemplo, Test).
Clique em Crie no canto superior direito e defina a URL do serviço de backend e o campo Host.
O campo Host define o cabeçalho Host que o API Gateway envia ao encaminhar requisições para este serviço de backend.
Método 5: Configurar o cabeçalho Host em um plug-in de roteamento de backend
Use o parâmetro httpTargetHostName ou vpcTargetHostName em um plug-in de roteamento de backend para definir o cabeçalho Host. Este método tem a maior prioridade e substitui todas as outras configurações.
Para obter detalhes sobre os parâmetros e a sintaxe de configuração, consulte a seção 1,3 de Plug-ins de roteamento de backend.
Prioridade das configurações do cabeçalho Host
Se você configurar o cabeçalho Host usando vários métodos, as configurações entrarão em vigor conforme a seguinte ordem de prioridade: plug-in de roteamento de backend > configuração do serviço de backend > autorização de acesso à VPC > configuração do grupo de APIs > definição da API.
Quando o Pass Host Header está ativado para um grupo de APIs, o API Gateway substitui a configuração de host do backend pelo cabeçalho Host da requisição original do cliente. Por exemplo, se o cliente enviar Host: apigateway.test.com e a URL de backend configurada for backend.test.com, o API Gateway encaminhará a requisição para apigateway.test.com — e não para backend.test.com.