Usa la compresión Brotli de CloudFront con POM Cache

CloudFront puede comprimir en el borde una respuesta sin comprimir apta de POM Cache y almacenar en caché la representación resultante. POM Cache no necesita un archivo Brotli en disco.

Esta guía describe el comportamiento de AWS relevante para POM Cache. La configuración y el acceso de CloudFront siguen siendo responsabilidad del despliegue.

Confirma la línea base del origen

Antes de cambiar CloudFront:

  1. elude la distribución mediante el método de prueba de origen aprobado;
  2. solicita una página pública almacenada en caché;
  3. confirma que el origen devuelve el HTML correcto;
  4. registra Content-Type y Content-Length;
  5. confirma que la respuesta aún no lleva Content-Encoding;
  6. verifica que las solicitudes autenticadas y de carrito permanecen fuera de la entrega estática pública.

Si el origen ya comprime, decide si mantener la compresión del origen o trasladar la responsabilidad a CloudFront. No trates ambas como optimizaciones independientes.

Configura el comportamiento de caché

En la consola de AWS CloudFront:

  1. selecciona la distribución;
  2. abre Behaviors;
  3. edita el comportamiento que entrega el contenido público relevante de POM;
  4. configura Compress objects automatically en Yes;
  5. selecciona o crea una política de caché con soporte de compresión Gzip y Brotli habilitado;
  6. guarda y espera a que se despliegue el cambio de la distribución.

AWS exige una política de caché —no la configuración de caché heredada— para Brotli. En términos de API, SDK o infraestructura como código, los controles relevantes son Compress, EnableAcceptEncodingGzip y EnableAcceptEncodingBrotli.

CloudFront normaliza entonces los valores admitidos de Accept-Encoding y añade esa dimensión a la clave de caché. AWS desaconseja añadir de forma redundante Accept-Encoding a la política de solicitud de origen cuando el almacenamiento en caché de compresión está habilitado. Consulta Serve compressed files y Understand cache policies.

No elijas una política de caché solo por la compresión

Una política también controla los TTL, las cookies, las cadenas de consulta y las cabeceras. Una política que es eficiente para activos inmutables puede ser insegura para el HTML de WordPress.

Antes de adjuntarla, confirma:

  • que administración, inicio de sesión, cuenta, carrito, pago, vistas previas y APIs no entren en el comportamiento público;
  • que los métodos de los visitantes estén restringidos adecuadamente;
  • que las cookies y las cadenas de consulta sigan el contrato de caché pública del sitio;
  • que el TTL mínimo no obligue a almacenar respuestas privadas/sin caché;
  • que el enrutamiento de host y de multisitio siga siendo correcto.

El soporte de compresión no convierte en segura una caché de borde insegura.

Comprende las comprobaciones de aptitud de CloudFront

Según AWS, la compresión automática depende de factores que incluyen:

  • que el Accept-Encoding del visitante incluya br o gzip;
  • que el objeto tenga un Content-Type admitido;
  • que el Content-Length del origen sea válido;
  • que el tamaño esté entre 1.000 y 10.000.000 bytes;
  • que el estado de la respuesta sea 200, 403 o 404;
  • que la respuesta tenga un cuerpo;
  • que el borde no haya conservado una copia sin comprimir anterior.

La compresión de CloudFront se realiza con el mejor esfuerzo. Una solicitud válida puede recibir ocasionalmente un objeto en caché sin comprimir.

Si el origen ya envía cualquier Content-Encoding, CloudFront trata la respuesta como ya codificada y no la comprime de nuevo.

Prefiere HTTPS para Brotli en el navegador

El soporte de Brotli en los navegadores modernos está asociado a la entrega por HTTPS. Mantén el sitio público canónico en HTTPS y prueba la URL real de los visitantes, no un endpoint de origen interno solo HTTP.

Cuando se aceptan tanto Brotli como Gzip y hay disponible una variante apta, CloudFront normalmente prefiere Brotli. Las variantes en caché existentes pueden influir en lo que recibe un visitante, así que verifica la cabecera en lugar de darlo por supuesto.

Sustituye los objetos de borde sin comprimir preexistentes

Habilitar la compresión no transforma los objetos ya almacenados en las ubicaciones de borde. Pueden permanecer sin comprimir hasta que expiren, se desalojen o se invaliden.

Después de desplegar el nuevo comportamiento:

  1. invalida la ruta de prueba controlada;
  2. solicítala con Accept-Encoding: br,gzip;
  3. inspecciona Content-Encoding;
  4. repite hasta que se observe un acierto de borde;
  5. compara con Accept-Encoding: identity.

No invalides toda la distribución solo para probar una página.

Respuesta esperada

Para un visitante apto compatible, espera:

Content-Encoding: br

o, cuando se selecciona Gzip:

Content-Encoding: gzip

El Content-Type de la respuesta sigue siendo el tipo de recurso, como text/html; la compresión no convierte el HTML en otro tipo de medio.

Usa Verify Brotli or Gzip delivery para una prueba repetible y Coordinate POM Cache clearing with CDN invalidation cuando cambie el contenido.