Cette rubrique répond aux questions fréquemment posées (FAQ) concernant les opérations de purge et de préchargement dans Alibaba Cloud CDN. Elle aborde les différences entre la purge et le préchargement, l'ordre recommandé des opérations, les quotas, le dépannage, les conflits avec le cache du navigateur, les mises à jour de fichiers homonymes et le préchargement M3U8.
Quelle est la différence entre la purge et le préchargement ?
La purge et le préchargement sont deux opérations distinctes :
Purge : Cette opération indique aux nœuds de périphérie de marquer les ressources en cache comme expirées. Lorsqu'un utilisateur demande à nouveau la ressource, le nœud de périphérie récupère la dernière version depuis l'origine, la livre à l'utilisateur et la met de nouveau en cache. Une purge réduit temporairement le taux de succès du cache.
Préchargement : Cette opération charge proactivement les ressources depuis votre serveur d'origine vers les nœuds de périphérie. Lorsqu'un utilisateur demande la ressource pour la première fois, un nœud de périphérie proche la sert directement, ce qui élimine le besoin d'une récupération depuis l'origine. Un préchargement augmente le taux de succès du cache.
Existe-t-il un ordre recommandé pour la purge et le préchargement ?
La purge et le préchargement sont des opérations indépendantes sans ordre strict. Toutefois, lors de la mise à jour d'une ressource sur votre serveur d'origine, nous vous recommandons de suivre cette séquence logique :
Purgez d'abord : Purgez l'ancien contenu du cache CDN afin que les requêtes suivantes récupèrent la dernière version depuis le serveur d'origine.
Préchargez ensuite : Une fois la tâche de purge terminée, préchargez le contenu mis à jour vers les nœuds de périphérie. Cela garantit que les utilisateurs peuvent accéder au nouveau contenu avec une latence minimale.
Intégration initiale au CDN : Si le contenu n'est pas encore mis en cache sur les nœuds de périphérie, préchargez directement les ressources pour réchauffer le cache.
Dois-je utiliser l'URL d'origine ou l'URL du domaine accéléré ?
Utilisez toujours l'URL contenant le domaine accéléré, et non l'URL de votre serveur d'origine. Le système Alibaba Cloud CDN identifie et gère les ressources en cache par leur domaine accéléré. Soumettez une demande de purge ou de préchargement pour une URL sous un domaine accéléré afin de garantir que le contenu mis en cache sur les nœuds de périphérie est correctement mis à jour ou préchargé.
Comment purger le contenu en cache sous un domaine générique ?
Alibaba Cloud CDN ne prend pas en charge la purge de tout le contenu en cache sous un domaine générique en une seule opération. Vous devez soumettre des demandes de purge séparées pour des sous-domaines, des répertoires ou des chemins d'URL spécifiques. Vous ne pouvez pas utiliser des modèles tels que https://*.example.com/file01.html ou https://*.example.com/file02/. Si vous devez purger plusieurs URL, saisissez une URL par ligne.
Combien de temps faut-il pour terminer les tâches de purge et de préchargement ?
Tâche de purge : Une tâche de purge se propage généralement sur l'ensemble du réseau en environ 5 à 6 minutes. Si le TTL configuré d'une ressource est inférieur à cette durée, une purge manuelle n'est pas nécessaire.
Tâche de préchargement : La durée dépend de la taille et du nombre de fichiers, mais l'opération prend généralement entre 5 et 30 minutes.
Comment appliquer immédiatement les modifications de configuration CDN ?
Les modifications apportées aux configurations CDN, telles que l'hôte d'origine, les règles de mise en cache ou les en-têtes de réponse, s'appliquent généralement uniquement aux nouvelles requêtes. Si un nœud de périphérie a déjà mis en cache d'anciens en-têtes de réponse ou du contenu, il n'appliquera pas la nouvelle configuration à ce contenu en cache. Pour que vos modifications prennent effet immédiatement, purgez manuellement le cache pour les URL ou les répertoires correspondants. Cela force les nœuds de périphérie à récupérer la ressource depuis l'origine avec la nouvelle configuration.
Par exemple, après avoir modifié un en-tête de réponse ou le TTL, accédez à la page Cache Refresh dans la console CDN. Saisissez les URL ou les chemins de répertoire que vous souhaitez purger et envoyez la demande. Si une modification de configuration entraîne une incompatibilité de Content-Type, corrigez d'abord les métadonnées sur votre serveur d'origine, puis purgez les URL concernées.
Puis-je inclure des en-têtes personnalisés dans les demandes de préchargement ?
Par défaut, les demandes de préchargement incluent l'en-tête Accept-Encoding: gzip. Pour inclure d'autres en-têtes dans une demande de préchargement ou pour effectuer un préchargement multi-réplicas, utilisez l'OpenAPI.
Comment mettre à jour des fichiers homonymes après la configuration du CDN ?
Suivez ces bonnes pratiques lors de la mise à jour de fichiers accélérés par le CDN :
Pour les mises à jour de fichiers générales, nous vous recommandons d'ajouter un numéro de version à l'URL de la ressource, tel que
?v=1.0. Cela évite les problèmes de mise en cache liés aux mises à jour de fichiers homonymes.Si vous devez effectuer une mise à jour homonyme, soumettez une demande de purge depuis la console ou via l'OpenAPI. Pour les opérations via la console, consultez la rubrique Purge and prefetch resources. Pour les opérations OpenAPI, consultez la rubrique Purge and prefetch.
Pourquoi la purge de la page d'accueil seule ne suffit-elle pas pour les mises à jour JS/CSS ?
Les navigateurs et le CDN mettent en cache des URL spécifiques de fichiers JS et CSS. Si vous mettez à jour le contenu d'un fichier sans modifier son nom, ou si vous changez le nom du fichier sans mettre à jour la référence dans votre HTML, la purge de la seule page d'accueil peut ne pas suffire. Le navigateur de l'utilisateur ou le CDN peut continuer à servir l'ancienne version des sous-ressources depuis le cache.
Recommandations :
Purgez les URL spécifiques des fichiers JS/CSS, et pas seulement la page d'accueil.
En bonne pratique, ajoutez des paramètres de version aux URL des ressources, tels que
?v=1.0, pour éviter les problèmes de mise en cache causés par les mises à jour homonymes.Si une mise à jour homonyme se produit sur le serveur d'origine, purgez manuellement le cache pour l'URL correspondante dans la console CDN. Attendez quelques minutes après la fin de la tâche de purge, puis effectuez à nouveau un test dans une fenêtre de navigation privée.
Pourquoi la ressource n'est-elle pas mise à jour après la purge et le préchargement ?
Causes possibles : Cela peut se produire pour plusieurs raisons :
Bien que la tâche de purge ait vidé le cache CDN, votre navigateur sert toujours une ancienne version de la ressource depuis le cache local du navigateur.
La ressource sur le serveur d'origine n'a pas été mise à jour.
La tâche de purge ou de préchargement n'est pas encore terminée.
Lorsque vous effectuez une purge de répertoire, le CDN marque par défaut les objets comme expirés. Lors de la prochaine récupération depuis l'origine, le CDN inclut un en-tête If-Modified-Since ou If-None-Match dans la requête. Si le Last-Modified ou l'ETag du fichier homonyme sur le serveur d'origine n'a pas changé, le serveur d'origine renvoie un code d'état 304 Not Modified, et le CDN continue de servir l'ancien contenu.
Solutions : Essayez les solutions suivantes en fonction de la cause :
Videz le cache de votre navigateur et actualisez la page pour voir si la ressource est mise à jour. Vous pouvez également tester en utilisant une fenêtre de navigation privée ou un autre navigateur.
Pointez votre domaine directement vers le serveur d'origine en modifiant votre fichier hosts local. Ensuite, accédez directement au serveur d'origine pour vérifier si la ressource est mise à jour. Si ce n'est pas le cas, mettez à jour la ressource sur votre serveur d'origine avant de l'accélérer avec le CDN.
Vérifiez l'état de la tâche sur la page Purge and prefetch resources.
Effectuez une purge d'URL (type Fichier) pour supprimer le cache d'un fichier spécifique. Alternativement, appelez l'API
RefreshObjectCacheset définissez le paramètreForcesurtrue. Cela effectue une purge forcée, qui supprime immédiatement le contenu des nœuds de périphérie au lieu de simplement le marquer comme expiré.
Sur la page Purge and Prefetch, cliquez sur l'onglet Records. Vérifiez que le Status de la tâche est Completed et que la Progress est de 100 % pour confirmer l'achèvement.
Pourquoi la vitesse de téléchargement ralentit-elle pendant le préchargement ?
Une tâche de préchargement déclenche des téléchargements simultanés depuis votre serveur d'origine vers plusieurs nœuds de périphérie. La vitesse de téléchargement depuis un seul nœud peut être rapide initialement, mais à mesure que davantage de nœuds commencent à télécharger, la vitesse globale devient limitée par la bande passante de votre serveur d'origine. Pour les serveurs d'origine ayant une faible bande passante, les tâches de préchargement prendront plus de temps. Évaluez la bande passante de votre origine et augmentez-la si nécessaire, ou divisez les grandes tâches de préchargement en lots plus petits.
Comment les redirections 30X du serveur d'origine affectent-elles le préchargement ?
Si votre serveur d'origine renvoie un code d'état 307 ou autre lié à la redirection lors d'un préchargement, la tâche de préchargement ne suivra pas la redirection et échouera. Si le serveur d'origine renvoie un code d'état 301 ou 302 et que vous avez activé le suivi des redirections 301/302 dans le CDN, le CDN suivra la redirection, permettant à la tâche de préchargement de se terminer avec succès.
Comment résoudre les problèmes de contenu obsolète ou d'erreurs 404 après la suppression ou la mise à jour d'un fichier sur le serveur d'origine ?
Les nœuds de périphérie CDN peuvent avoir une ancienne version d'une ressource en cache. Même si le fichier sur le serveur d'origine a été supprimé ou mis à jour, la version en cache peut toujours être servie. Pour résoudre ce problème :
Effectuez une opération de purge pour l'URL spécifique dans la console CDN ou via l'API.
Si le problème est causé par une politique de mise en cache au niveau du répertoire, purgez l'intégralité du répertoire. Pour garantir que le contenu est complètement supprimé, appelez l'API
RefreshObjectCacheset définissez le paramètreForcesurtruepour effectuer une purge forcée.Confirmez que le fichier a bien été mis à jour ou supprimé sur le serveur d'origine.
Comment dépanner les échecs de préchargement ?
Si une tâche de préchargement échoue, vérifiez les éléments suivants :
Vérifiez l'accessibilité de l'URL : Confirmez que l'URL que vous souhaitez précharger est accessible dans un navigateur et renvoie un code d'état
200. Si elle renvoie un code d'état308ou autre code de redirection, préchargez l'URL correcte qui se termine par une barre oblique (/).Assurez-vous de ne pas précharger un répertoire : Le préchargement est pris en charge uniquement pour les URL de fichiers spécifiques, et non pour les chemins de répertoire qui se terminent par un
/.Vérifiez les conflits avec l'accélération dynamique OSS : Si votre origine est un bucket OSS et que vous avez activé l'accélération dynamique, les fichiers statiques peuvent contourner le chemin de cache. Désactivez l'accélération dynamique ou spécifiez les types de fichiers statiques à mettre en cache.
Vérifiez le format de l'URL : Les URL doivent commencer par un en-tête de protocole complet (
http://ouhttps://) et ne doivent pas contenir de caractères illégaux, tels que des caractères pleine largeur ou des espaces supplémentaires. Séparez plusieurs URL par des sauts de ligne, et non par des virgules.Vérifiez si la ressource est cachable : Assurez-vous que la ressource que vous souhaitez précharger ne possède pas d'en-têtes tels que
Cache-Control: no-cache/no-store/private, qui empêchent la mise en cache.
Dois-je purger et précharger séparément pour HTTP et HTTPS ?
Non. Alibaba Cloud CDN traite les versions HTTP et HTTPS d'une URL comme la même ressource pour la mise en cache. Une demande de purge ou de préchargement pour un protocole s'applique aux deux. Par exemple, si vous devez précharger le fichier aaa.mp4, il vous suffit de précharger https://example.com/aaa.mp4. Vous n'avez pas besoin de précharger également http://example.com/aaa.mp4.