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 :
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 parhlx_
). - 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.