El origen configurado en mi distribución de Amazon CloudFront utiliza alojamiento virtual. Quiero configurar mi distribución de modo que reenvíe el encabezado host a mi servidor de origen.
Descripción corta
Para configurar la distribución de modo que reenvíe el encabezado host al origen, realiza una de las siguientes acciones:
- Crea una política de caché y una política de solicitud de origen.
- Edita la configuración de un comportamiento existente en la distribución.
Si creas una política personalizada para los orígenes de Amazon API Gateway sin un dominio personalizado, no reenvíes el encabezado host. De lo contrario, se mostrará un "403 error".
Importante: En el caso de los orígenes de Amazon Simple Storage Service (Amazon S3), CloudFront no admite las cachés basadas en el encabezado host. Para obtener más información, consulta Selección de los encabezados para basar el almacenamiento en caché.
Resolución
Creación de una política de caché y una política de solicitud de origen
Sigue estos pasos:
- Abre la consola de CloudFront.
- En el panel de navegación, elige Políticas.
- En la sección Políticas personalizadas, elige Crear política de caché.
- En Configuración de la clave de caché, en Encabezados, selecciona Incluir los siguientes encabezados.
- En la lista desplegable Agregar encabezado, selecciona Host.
- Completa todos los demás ajustes de la política de caché según tus requisitos.
- Selecciona Crear.
- Asocia las políticas al comportamiento correspondiente de tu distribución de CloudFront.
Edición de la configuración de un comportamiento existente en la distribución
Sigue estos pasos:
- Abre la consola de CloudFront.
- Selecciona tu distribución.
- Seleccione la pestaña Comportamientos y, a continuación, selecciona la ruta a la que se debe reenviar el encabezado host.
- Selecciona Editar.
- Confirma que las solicitudes de clave y origen de caché estén establecidas en la configuración de caché heredada.
Nota: Si la configuración de caché heredada no está seleccionada, completa los pasos de la sección anterior para crear una política de caché.
- En Configuración de la clave heredada, en Encabezados, selecciona Incluir los siguientes encabezados.
- En el menú Agregar encabezado, selecciona Host.
- Selecciona Guardar cambios.
(Opcional) Reenvío del encabezado con un nombre diferente
Para reenviar el valor del encabezado del host con un nombre de encabezado personalizado o diferente, utiliza una función de CloudFront o una función de AWS Lambda@Edge.
Para reenviar el encabezado con un nombre diferente, sigue estos pasos:
- Comprueba el encabezado del host entrante.
Nota: Para las funciones de CloudFront, comprueba el evento de ](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/functions-event-structure.html#functions-event-structure-request)solicitud del espectador[. Para Lambda@Edge, comprueba el evento de solicitud de visualización u origen.
- Para almacenar el valor del encabezado del host de una solicitud de cliente en el encabezado, utiliza el comando function handler de Lambda en la solicitud del espectador.
Nota: Por ejemplo, si el encabezado del host entrante es host, agrega un nuevo encabezado que tenga el mismo valor. Consulta el siguiente ejemplo de código:
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
}
Nota: Esta función de ejemplo activa un evento de solicitud del espectador.
- Para reenviar el encabezado personalizado al origen, configura la política de solicitud de caché o host para incluir en la lista de permitidos el encabezado X-Forwarded-Host. Para obtener más información, consulta Comportamiento de solicitudes y respuestas para orígenes personalizados.
Información relacionada
Almacenamiento en caché de contenido en función de encabezados de solicitud
Control de la clave de caché con una política