Configuration de Fastly

Les captures d’écran suivantes illustrent comment configurer Fastly pour diffuser du contenu. Les paramètres essentiels sont marqués d’un cercle rouge.

Configurer l’invalidation des notifications push pour Fastly

L’invalidation des notifications push purge automatiquement le contenu sur le réseau CDN de production du client (par exemple, www.yourdomain.com), chaque fois qu’un auteur publie des modifications de contenu.

Le contenu est purgé par URL et par balise/clé de cache.

L’invalidation des notifications push est activée en ajoutant des propriétés spécifiques à la configuration du projet (un classeur Excel nommé .helix/config.xlsx dans SharePoint ou une feuille Google nommée .helix/config dans Google Drive).

Propriétés de configuration :

key
value
comment
cdn.prod.host
<Production Host>
Nom d’hôte du site de production, par exemple www.yourdomain.com
cdn.prod.type
fastly
cdn.prod.serviceId
<Fastly Service ID>
Identifiant de service du service de production
cdn.prod.authToken
<Fastly API Token>

Pour créer un jeton API Fastly :

  • accédez à Jetons API personnels,
  • cliquez sur « Créer un jeton »,
  • saisissez un nom (par exemple, "Production Site Purge Token"),
  • sélectionnez « Un service spécifique » et votre service de production dans la liste déroulante.
  • cochez la case « Purger le contenu sélectionné (purge_select) — Purger par URL ou clé de substitution »,
  • sélectionner « Ne jamais expirer » ;
  • cliquez sur « Créer un jeton »,
  • copiez la valeur de jeton générée affichée dans la fenêtre pop-up.

Vous pouvez valider les informations d’identification à l’aide de cet outil.

Créer un service Fastly

Accédez à l’interface utilisateur de gestion Fastly et sélectionnez Créer un service, CDN.

Ajouter un domaine

Ajoutez votre domaine de production (par exemple, www.mydomain.com) :

Configurer l’origine

Ajoutez votre origine (par exemple, main--mysite--hlxsites.aem.live) et conservez les paramètres par défaut pour :

  • Remplacer l’hôte par défaut
  • Compression par défaut
  • Forcer TLS & HSTS

Dans la nouvelle configuration, cliquez sur « Modifier la configuration » dans le coin supérieur droit et sur « cloner la version 1 à modifier ».

Dans la barre latérale, sélectionnez « Hosts » sous « Origins » et cliquez sur l’icône en forme de crayon pour modifier les paramètres de l’hôte.

Faites défiler vers le bas et remplacez Blindage par Ashburn Metro (IAD) (paramètre non obligatoire mais recommandé) :

N'oubliez pas de mettre à jour.

Créer des fragments de code VCL

Créez un fragment de code VCL pour le sous-programme recv avec le code VCL suivant :

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;
    }
  }
}

Créez des fragments de code VCL supplémentaires pour les sous-routines miss et pass avec le code VCL suivant :

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

Remarque : l’en-tête de requête X-Push-Invalidation: enabled active l’invalidation push, y compris les longues TTL de cache.

Créez un fragment de code deliver avec le code VCL suivant :

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;
  }
}

Enfin, créez un fragment de code deliver avec le code VCL suivant :

unset resp.http.Age;

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

Après avoir effectué toutes les étapes et activé la version du service, vous devriez être prêt :

Facultatif : Authentifier les demandes d’origine

Si vous avez activé authentification de site basée sur les jetons, accédez dans la barre latérale aux en-têtes de → de contenu, puis à « créer un en-tête » avec les paramètres suivants :

  • Nom : authentification de l’origine
  • Type : Requête/Ensemble
  • Destination : http.Authorization
  • Source : "token <your-token-here>" (n’oubliez pas les guillemets et remplacez <your-token-here> par le jeton de site récupéré dans Authentification de site basée sur les jetons - le jeton commence par hlx_).
  • Ignorer si défini : non
  • Priorité : 10

Remarque

Votre configuration Fastly ne doit pas utiliser le pare-feu d’application web de nouvelle génération de Fastly pour les requêtes qui vont à l’encontre d’aem.live ou de toute autre origine de Edge Delivery Services. L’activation de WAF avec Edge Delivery Services peut entraîner la diffusion de contenu erroné.

Edge Delivery Services n’a pas besoin de pare-feu d’application web, car il s’exécute sur une infrastructure renforcée, partagée et ultra-évolutive. Les requêtes qu’un WAF intercepterait généralement sont interrompues dans nos réseaux CDN.

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