Configuración de Fastly

Las siguientes capturas de pantalla ilustran cómo configurar Fastly para entregar contenido. La configuración esencial está marcada con un círculo rojo.

Configuración de la invalidación push para Fastly

La invalidación push purga automáticamente el contenido en la CDN de producción del cliente (p. ej. www.yourdomain.com), cada vez que un autor publica cambios de contenido.

El contenido se purga mediante la dirección URL y la clave/etiqueta de caché.

La invalidación push se habilita agregando propiedades específicas a la configuración del proyecto (un libro de Excel denominado .helix/config.xlsx en Sharepoint o una hoja de Google denominada .helix/config en Google Drive).

Propiedades de configuración:

key
valor
comentario
cdn.prod.host
<Production Host>
Nombre del host del sitio de producción, p. ej.,. www.yourdomain.com
cdn.prod.type
fastly
cdn.prod.serviceId
<Fastly Service ID>
ID de servicio del servicio de producción
cdn.prod.authToken
<Fastly API Token>

Para crear un token de API de Fastly,

  • ir a tokens de API personales,
  • haga clic en "Crear token",
  • escriba un nombre (p. ej. "Production Site Purge Token"),
  • seleccione "Un servicio específico" y su servicio de producción de la lista desplegable,
  • marque la casilla de verificación "Purgar contenido seleccionado (purge_select) — Purgar por URL o clave de sustitución",
  • seleccione "No caducar nunca",
  • haga clic en "Crear token",
  • copie el valor de token generado que se muestra en la ventana emergente.

Puede validar las credenciales con esta herramienta.

Crear un servicio de Fastly

Vaya a la IU de administración rápida y seleccione Crear servicio, CDN.

Agregar dominio

Agregue su dominio de producción (p. ej. www.mydomain.com):

Configurar origen

Agregue su origen (p. ej. main--mysite--hlxsites.aem.live) y mantenga la configuración predeterminada para:

  • Anular host predeterminado
  • Compresión predeterminada
  • Forzar TLS y HSTS

En la nueva configuración, haga clic en "Editar configuración" en la esquina superior derecha y en "clonar versión 1 para editar".

En la barra lateral, seleccione "Hosts" debajo de "Orígenes" y haga clic en el icono de lápiz para cambiar la configuración del host.

Desplácese hacia abajo y cambie Blindaje a Ashburn Metro (IAD) (no obligatorio, pero con la configuración recomendada):

No se olvide de "actualizar".

Crear fragmentos de VCL

Cree un fragmento de VCL para la subrutina recv con el siguiente código VCL:

if (fastly.ff.visits_this_service == 0) {
  # edge delivery node
  if (req.url.qs != "") {
    # remember query string
    set req.http.X-QS = req.url.qs;

    if (req.url.path !~ "/media_[0-9a-f]{40,}[/a-zA-Z0-9_-]*\.[0-9a-z]+$"
      && req.url.ext !~ "(?i)^(gif|png|jpe?g|webp)$"
      && req.url.ext != "json"
      && req.url.path != "/.auth") {
      # strip query string from request url
      set req.url = req.url.path;
    }
  }
}

Cree fragmentos de VCL adicionales para las subrutinas miss y pass con el siguiente código VCL:

set bereq.http.X-BYO-CDN-Type = "fastly";
set bereq.http.X-Push-Invalidation = "enabled";

Nota: el encabezado de solicitud X-Push-Invalidation: enabled habilita la invalidación de inserción, incluidos los TTL de caché larga.

Crear un fragmento deliver con el siguiente código VCL:

if (fastly.ff.visits_this_service == 0) {
  # on edge delivery node
  if (
    http_status_matches(resp.status, "301,302,303,307,308")
    && req.http.X-QS
    && resp.http.location
    && resp.http.location !~ "\?.*\z"
  ) {
    # preserve request query string in redirect location
    set resp.http.location = resp.http.location "?" req.http.X-QS;
  }
}

Finalmente, cree un fragmento deliver con el siguiente código VCL:

unset resp.http.Age;

if (req.url.path !~ "\.plain\.html$") {
  unset resp.http.X-Robots-Tag;
}

Después de completar todos los pasos y activar la versión del servicio, debe estar todo configurado:

Opcional: Autenticar solicitudes de origen

Si ha habilitado la autenticación de sitio basada en tokens, vaya a la barra lateral a Encabezados de → de contenido y, a continuación, "cree un encabezado" con la siguiente configuración:

  • Nombre: Autenticación de origen
  • Tipo: solicitud/conjunto
  • Destino: http.Authorization
  • Source: "token <your-token-here>" (no olvide las comillas y reemplace <your-token-here> por el token de sitio recuperado en autenticación de sitio basada en token; el token comienza con hlx_)
  • Ignorar si se establece: no
  • Prioridad: 10

Nota

La configuración de Fastly no debería usar Firewall de aplicación web de próxima generación de Fastly para solicitudes que vayan contra aem.live o cualquier otro origen de Edge Delivery Services. Si se habilita WAF con Edge Delivery Services, se puede entregar contenido erróneo.

Edge Delivery Services no necesita un cortafuegos de aplicaciones web, ya que se está ejecutando en una infraestructura reforzada, compartida y ultraescalable. Las solicitudes que una WAF normalmente interceptaría se finalizan en nuestras CDN.

recommendation-more-help
10a6ce9d-c5c5-48d9-8ce1-9797d2f0f3ec