Mettre en cache le CSS/JS de manière agressive
Accélérez les ressources avec GET/HEAD, les réponses 200/301/302/304, et un TTL d'un jour ou plus ; retirez les paramètres de suivi de campagne de la clé de cache.
Aide CDN.com.tr
Configurez la clé de cache domaine/chemin, le TTL, les méthodes/statuts, les en-têtes/cookies, l'optimisation et les règles de limitation de débit.
Cache, sécurité, WAF et purge
Configurez la clé de cache domaine/chemin, le TTL, les méthodes/statuts, les en-têtes/cookies, l'optimisation et les règles de limitation de débit.
Ces exemples utilisent des scénarios sûrs sur origine WordPress pour les fichiers statiques, les chaînes de requête, les en-têtes/cookies et les chemins de session sensibles.
Accélérez les ressources avec GET/HEAD, les réponses 200/301/302/304, et un TTL d'un jour ou plus ; retirez les paramètres de suivi de campagne de la clé de cache.
Contournez le cache lorsqu'un cookie de session ou de panier est présent ; les chemins wp-admin et wp-login ne doivent jamais entrer dans le cache partagé.
Ignorez Set-Cookie ou Cache-Control pour les décisions de cache, masquez X-Origin-Debug/X-Powered-By aux utilisateurs, et n'activez le débogage en amont que temporairement.
Pour les chemins de type API, n'incluez dans la clé de cache que les paramètres de requête qui modifient le contenu, et définissez une limite de requêtes.
Restreignez la règle par domaine, protocole et regex de chemin avant de modifier le comportement ; les règles larges du type `/` nécessitent un examen délibéré.
Conservez les paramètres de requête dans la clé de cache uniquement lorsqu'ils modifient le contenu ; les paramètres de suivi sont généralement retirés.
Le contenu personnalisé, le panier et l'admin doivent contourner le cache ; le contenu statique et anonyme peut recevoir un TTL.
Ignorer un en-tête d'origine pour les décisions de cache est différent de le masquer au client.
Les préréglages au niveau du compte définissent le comportement général ; Add Rule écrit un comportement précis pour un domaine/chemin.
Resultat attendu: La fenêtre de règle s'ouvre et la nouvelle règle est préparée dans le périmètre du compte sélectionné.
cdnctl accounts list
export ACCOUNT_UUID=<selected_account_uuid>
cdnctl cdn advanced-rules list --account "$ACCOUNT_UUID" --format table
Ces champs déterminent quelles requêtes la règle cible ; un regex trop large peut modifier tout le site.
Resultat attendu: La règle ne correspond qu'au nom d'hôte et aux chemins ciblés.
cat > rule-static-assets.json <<EOF
{"server_domain_names":["www.example.com"],"type":["http","http2"],"path_regex":"^/cdn-help/rules/(cache-demo\\.css|query-demo\\.json)$"}
EOF
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-static-assets.json
Pour les fichiers statiques, retirez les paramètres de requête de suivi de la clé de cache et ne gardez que les vraies variantes.
Resultat attendu: Les objets CSS/JSON anonymes sont mis en cache sans diviser le cache par des paramètres de requête inutiles.
jq '. + {"cache_query_mode":"ignore_list","cache_query_params":["utm_*","gclid","fbclid","msclkid"],"cache_valid_time":"1 day","allowed_cache_methods":["GET","HEAD"],"allowed_cache_responses":["200","301","302","304"],"response_cache_times":{"200":"1 day","301":"1 week","302":"2 hours","304":"1 day"}}' rule-static-assets.json > rule-static-assets-cache.json
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-static-assets-cache.json
Les chemins d'admin, de connexion, de panier et de validation de commande doivent préserver le comportement d'origine plutôt que de renvoyer des résultats de cache.
Resultat attendu: Les requêtes de session ne renvoient pas de contenu mis en cache partagé à un autre utilisateur.
cat > rule-wordpress-sensitive.json <<EOF
{"server_domain_names":["www.example.com"],"type":["http","http2"],"path_regex":"^/(wp-admin|wp-login\\.php|cart|checkout)(/.*)?$","bypass":"on","bypass_by_cookie":"wordpress_logged_in\nwoocommerce_cart_hash\nwp_woocommerce_session_","limit":30,"per_time":10}
EOF
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-wordpress-sensitive.json
Décidez séparément si les en-têtes d'origine influencent les décisions de cache et s'ils sont exposés aux navigateurs.
Resultat attendu: Les en-têtes d'origine sont contrôlés délibérément et le débogage n'est pas laissé actif en production.
jq '. + {"ignore_headers":["Cache-Control","Set-Cookie"],"hide_headers":["X-Origin-Debug","X-Powered-By"],"custom_headers":"X-Forwarded-Host: $host\nX-CDN-Rule-Debug: temporary","debug_upstream_headers":true,"image_optimization":"on","white_space":"on"}' rule-static-assets-cache.json > rule-headers-debug.json
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-headers-debug.json
Comme Save peut déclencher un flux d'application en direct, la vérification finale se fait par chemin/domaine/TTL/en-tête.
Resultat attendu: Après le succès de l'opération, les requêtes correspondantes affichent le nouveau comportement de cache/en-tête/limitation de débit.
cdnctl cdn advanced-rules create --account "$ACCOUNT_UUID" --file rule-headers-debug.json
cdnctl operations list --account "$ACCOUNT_UUID"
curl -I "https://www.example.com/cdn-help/rules/cache-demo.css?utm_source=test"
curl -I -H "Cookie: wordpress_logged_in=redacted" "https://www.example.com/wp-admin/"
L'admin/panier WordPress contourne le cache tandis que les ressources statiques et les chemins JSON anonymes sont mis en cache délibérément.
Utilisez les journaux WAF pour expliquer un trafic bloqué ou mis au défi sans exposer les systèmes de journalisation internes.
Purgez un chemin, un chemin enregistré ou l'ensemble du compte, et distinguez le cache CDN du cache navigateur.
Utilisez l'en-tête de réponse X-Proxy-Cache-MT pour voir exactement ce que le CDN a fait d'une requête et vérifier que la mise en cache fonctionne comme prévu.