A origem configurada na minha distribuição do Amazon CloudFront usa hospedagem virtual. Quero configurar minha distribuição para encaminhar o cabeçalho do host para meu servidor de origem.
Breve descrição
Para configurar sua distribuição para encaminhar o cabeçalho do host para a origem, execute uma das seguintes ações:
- Crie uma política de cache e uma política de solicitação de origem.
- Edite as configurações de um comportamento existente na distribuição.
Se você criar uma política personalizada para origens do Amazon API Gateway sem um domínio personalizado, não encaminhe o cabeçalho host. Caso contrário, você receberá "403 error".
Importante: para as origens do Amazon Simple Storage Service (Amazon S3), o CloudFront não aceita caches baseados no cabeçalho host. Para mais informações, consulte Selecionar os cabeçalhos para basear o armazenamento em cache.
Resolução
Crie uma política de cache e uma política de solicitação de origem
Conclua as etapas a seguir:
- Abra o console do CloudFront.
- No painel de navegação, selecione Políticas.
- Na seção Políticas personalizadas, escolha Criar política de cache.
- Em Configurações da chave de cache, em Cabeçalhos, escolha Incluir os cabeçalhos a seguir.
- Na lista suspensa Adicionar cabeçalho, escolha Host.
- Realize todas as demais configurações da política de cache com base em seus requisitos.
- Escolha Criar.
- Anexe as políticas ao comportamento relevante da sua distribuição do CloudFront.
Editar as configurações de um comportamento existente na distribuição
Conclua as etapas a seguir:
- Abra o console do CloudFront.
- Selecione sua distribuição.
- Selecione a aba Comportamentos e, em seguida, selecione o caminho para o qual encaminhar o cabeçalho host.
- Escolha Editar.
- Confirme se a Chave de cache e as solicitações de origem estão definidas nas Configurações de cache legadas.
Observação: se as Configurações de cache legada não estiverem selecionadas, conclua as etapas na seção anterior para criar uma política de cache.
- Em Configurações de chave legadas, em Cabeçalhos, escolha Incluir os cabeçalhos a seguir.
- No menu Adicionar cabeçalho, escolha Host.
- Escolha Salvar alterações.
(Opcional) Encaminhar o cabeçalho com um nome diferente
Para encaminhar o valor do cabeçalho host com um nome de cabeçalho personalizado ou diferente, use uma CloudFront Function ou a função do AWS Lambda@Edge.
Para encaminhar o cabeçalho com um nome diferente, conclua as seguintes etapas:
- Verifique o cabeçalho host de entrada.
Observação: para CloudFront Functions, verifique o evento de solicitação do visualizador. Para o Lambda@Edge, verifique o evento de solicitação de visualização ou origem.
- Para armazenar o valor do cabeçalho host de uma solicitação do cliente no cabeçalho, use o comando Lambda function handler na solicitação do visualizador.
Observação: por exemplo, se o cabeçalho host de entrada for host, adicione um novo cabeçalho com o mesmo valor. Veja o exemplo de código a seguir:
function handler(event) { const request = event.request;
const headers = request.headers;
const host = request.headers.host.value;
headers['x-forwarded-host'] = { "value": host }
return request
}
Observação: essa função de exemplo ativa um evento de solicitação do visualizador.
- Para encaminhar o cabeçalho personalizado para a origem, configure a política de solicitação de cache ou host para listar o cabeçalho X-Forwarded-Host na lista de permissões. Para mais informações, consulte Comportamento de solicitações e respostas para origens personalizadas.
Informações relacionadas
Conteúdo em cache com base nos cabeçalhos de solicitação
Controlar a chave de cache com uma política