Fastly (BYOCDN)
Cette configuration achemine le trafic dynamique (requêtes provenant de robots d’IA et d’agents utilisateurs LLM) vers le service principal Edge Optimize (live.edgeoptimize.net). Les visiteurs humains et les robots d’optimisation du moteur de recherche continuent d’être servis depuis votre origine comme d’habitude. Pour tester la configuration, une fois la configuration terminée, recherchez l’en-tête x-edgeoptimize-request-id dans la réponse.
Conditions préalables
Avant de configurer les règles Fastly VCL, vérifiez que vous disposez des éléments suivants :
- Accès à Fastly pour votre domaine.
- Clé d’API Edge Optimize récupérée à partir de l’interface utilisateur de LLM Optimizer. Pour connaître les étapes, voir Récupération de vos clés API.
- (Facultatif) Pour tester le routage d’évaluation, consultez Clé API d’évaluation.
Configuration
Ajoutez les trois fragments de code VCL suivants à votre service Fastly. Ces fragments de code gèrent les requêtes d’agent de routage vers Edge Optimize, la séparation des clés de cache et le basculement vers votre origine par défaut.
Fragment de code vcl_recv
unset req.http.x-edgeoptimize-url;
unset req.http.x-edgeoptimize-config;
unset req.http.x-edgeoptimize-api-key;
unset req.http.x-edgeoptimize-fetcher-key; # Optional (required only in case of WAF)
if (!req.http.x-edgeoptimize-request
&& req.http.user-agent ~ "(?i)(AdobeEdgeOptimize-AI|ChatGPT-User|GPTBot|OAI-SearchBot|PerplexityBot|Perplexity-User)") {
set req.http.x-forwarded-host = req.http.host; # required for identifying the original host
set req.http.x-edgeoptimize-url = req.url; # required for identifying the original url
set req.http.x-edgeoptimize-config = "LLMCLIENT=TRUE;"; # required for cache key
set req.http.x-edgeoptimize-api-key = "<YOUR API KEY>"; # required for identifying the client
set req.http.x-edgeoptimize-fetcher-key = "<YOUR FETCHER KEY>"; # Optional (required only in case of WAF)
set req.backend = F_EDGE_OPTIMIZE;
}
Fragment de code vcl_hash
if (req.http.x-edgeoptimize-config) {
set req.hash += "edge-optimize";
set req.hash += req.http.x-edgeoptimize-config;
}
Fragment de code vcl_delivery
if (req.http.x-edgeoptimize-config && resp.status >= 400) {
set req.http.x-edgeoptimize-request = "failover";
set req.backend = F_Default_Origin;
restart;
}
if (!req.http.x-edgeoptimize-config && req.http.x-edgeoptimize-request == "failover") {
set resp.http.x-edgeoptimize-fo = "1";
}
Basculement
Le fragment de code vcl_deliver gère automatiquement le basculement. Si Edge Optimize renvoie une erreur 4XX ou 5XX, la requête est redémarrée et routée vers votre origine par défaut, de sorte que l’utilisateur final reçoive toujours une réponse. Les réponses de basculement incluent l’en-tête x-edgeoptimize-fo: 1.
2XX4XX ou 5XXx-edgeoptimize-fo: 1 d’en-tête.Autoriser l’optimisation sur Edge via des règles de pare-feu (facultatif)
Si votre réseau CDN utilise un WAF ou un gestionnaire de robots :
-
Placez sur la liste autorisée l’agent utilisateur
*AdobeEdgeOptimize/1.0*dans votre WAF ou Gestionnaire de robots afin que le service Optimize at Edge puisse récupérer votre contenu d’origine. -
Si votre pare-feu nécessite une vérification supplémentaire au-delà de l’agent utilisateur, générez un secret (par exemple,
openssl rand -hex 32) et :- Ajoutez des
x-edgeoptimize-fetcher-keyavec le secret dans vos règles de routage à côté des autres en-têtesx-edgeoptimize-*. - Ajoutez une règle WAF ou Gestionnaire de robots pour autoriser les requêtes où
x-edgeoptimize-fetcher-keycorrespond au même secret.
- Ajoutez des
-
Optimiser dans Edge transmet cet en-tête en l’état : vous êtes propriétaire du cycle de vie complet des clés.
Vérifier la configuration
Une fois la configuration terminée, vérifiez que le trafic des robots est acheminé vers Edge Optimize et que le trafic humain n’est pas affecté.
1. Tester le trafic de robots (doit être optimisé)
Simulez une requête de robot d’IA à l’aide d’une chaîne agent-utilisateur :
curl -svo /dev/null https://www.example.com/page.html \
--header "user-agent: chatgpt-user"
Une réponse réussie inclut l’en-tête x-edgeoptimize-request-id, confirmant que la requête a été acheminée via Edge Optimize :
< HTTP/2 200
< x-edgeoptimize-request-id: 50fce12d-0519-4fc6-af78-d928785c1b85
2. Tester le trafic humain (ne devrait PAS être affecté)
Simulez une requête régulière de navigateur humain :
curl -svo /dev/null https://www.example.com/page.html \
--header "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"
La réponse ne doit pas contenir l’en-tête x-edgeoptimize-request-id. Le contenu de la page et le temps de réponse doivent rester identiques à avant l’activation de l’option Optimiser dans Edge.
3. Comment différencier les deux scénarios
x-edgeoptimize-request-idx-edgeoptimize-fo1)Le statut du routage du trafic peut également être vérifié dans l’interface utilisateur de LLM Optimizer. Accédez à Configuration du client et sélectionnez l’onglet Configuration du réseau CDN.
Pour en savoir plus sur l’optimisation sur Edge, y compris sur les opportunités disponibles, les workflows d’optimisation automatique et les questions fréquentes, revenez à la Présentation de l’optimisation sur Edge .