En fait ça a l'air plus compliqué que je ne le pensais : sur une même requête (fichier css par ex) j'ai parfois des HIT parfois des MISS. Avec des requêtes consécutives dans une plage de temps courte (qq min)
Il y a une explication à cela ? C'est le CDN qui a des problèmes ?
La cause principale de l’intermittence est la nature distribuée du CDN. OVHcloud possède de nombreux Points de Présence et serveurs dans le monde entier. Lorsqu’un utilisateur fait une requête, il est dirigé vers le PoP le plus proche. La première fois qu’un PoP demande une ressource, il la récupère de votre serveur d’origine et la stocke dans son cache local (c’est le MISS). Les requêtes suivantes vers le même PoP seront servies depuis son cache (le HIT).
Vous avez configuré dans votre .htaccess un Cache-Control: max-age=2400 pour les CSS. Ainsi, lorsque l’origine envoie des en‑têtes de cache, le CDN les respecte et n’applique pas à la légère les règles du manager. Autrement dit, le TTL de 2400 secondes que vous avez indiqué dans votre .htaccess est celui qui s’applique, pas les 40 minutes que vous auriez pu configurer dans le panneau.
Ce qui compte n’est pas que chaque requête individuelle renvoie un HIT, mais que le taux global de succès soit élevé sur le long terme. Si vous constatez que la plupart des requêtes répétées donnent un HIT, le CDN fonctionne correctement.
En l'occurence je fais mes tests toujours depuis la même IP donc je dois taper sur le même PoP à chaque fois.
Si c'est le max-age fourni par le serveur qui est pris en compte à quoi sert celui des règles CDN dans l'admin OVN, uniquement au nettoyage (purge) du CDN ?
concernant les 2400, j'ai corrigé il y a déjà 1 ou 2 heures, pour mettre 86400 (1 jour), par contre les entêtes indiquent toujours 2400, à quel moment ça se met à jour ?
La règle générale est que si ton serveur d'origine envoie un en‑tête Cache-Control, le CDN le respecte et l'utilise comme source principale. C’est‑à‑dire que ton .htaccess a le dernier mot sur le TTL.
Le fichier .css que tu demandes a déjà été mis en cache par le PoP d’OVHcloud avec la valeur de 2400 secondes que tu avais auparavant. Tant que ce TTL n’expire pas, le CDN continuera à te servir l’ancienne copie avec les anciens en‑têtes. Ta modification dans le .htaccess n’affecte pas ce qui est déjà dans le cache du CDN.
Pour voir la nouvelle valeur de 86400, tu dois forcer la purge de ce cache spécifique pour ce fichier.
Une fois le cache purgé, la prochaine requête pour ce .css ira à ton serveur d'origine, récupérera le nouveau max-age=86400 et le CDN enregistrera cette nouvelle version avec le TTL mis à jour. À partir de là, tu verras la bonne valeur
Donc ne t’inquiète pas @TechS, ta configuration est correcte, il te suffit de purger le cache pour que les changements d’en‑têtes se reflètent dans le CDN.
j'ai purgé le CDN et attendu plus que les 2400 secondes et le problème persiste.
Si tu me dis que tout est OK je veux bien le croire mais j'aime les résultats déterministes et ces temps d'attente sans savoir pourquoi ni quand ça sera résolu ne sont pas agréables ni pratiques.
Vérifiez et modifiez la règle dans le tableau de bord OVHcloud Allez dans Multisite > ... > Configurer le CDN. Recherchez la règle que vous avez créée pour les fichiers CSS. Changez sa durée TTL à 86400 secondes directement dans le tableau de bord.
Purgez le cache à nouveau Une fois la règle modifiée, purgez de nouveau le CDN.
Testez avec un fichier « propre » Pour éviter tout cache résiduel du navigateur, changez le nom d’un fichier CSS de test (par exemple ; estilos.css en estilos‑v2.css). Comme il s’agit d’un nouveau nom, ni le CDN ni votre navigateur n’ont de copie préalable. En le demandant, une nouvelle entrée de cache devrait être créée avec le TTL que vous avez défini.
Si, après cela, le nouveau fichier continue d’afficher un TTL ancien, alors nous sommes confrontés à une incohérence plus profonde de la plateforme.
réactiver le CDN : les règles précédentes étaient encore présentes
relancer une requête sur
style.css : max-age est encore à l'ancienne valeur
style2.css: là enfin j'obtiens 86400 !!!
à nouveau `style.css' où j'ai obtenu encore 2400
J'ai ensuite activé le "dev mode" du CDN et au bout de quelques requêtes j'ai obtenu 86400 sur style.css et sur les fichiers jpg. Après désactivation de ce mode, ça semble OK
Il y a quand même au moins une chose que je ne comprends : à quoi servent les règles CDN qu'on ajoute dans l'interface d'admin OVH ?
Je viens de faire des tests avec un nouveau sous-domaine sur lequel j'ai activé le CDN sans aucune règle et auquel j'ai ajouté un htaccess avec Cache-Control.
J'ai lancé plusieurs requêtes et j'obtiens des MISS mais aussi des HIT !
J'aurai vraiment besoin de quelqu'un qui connaisse très bien le produit CDN et puisse me dire
à quoi servent les règles d'expiration qu'on peut insérer ? Quelle différence de comportement il y a-t-il entre les mettre ou pas ?
comment fonctionne l'expiration du cache ? est-il régi par ces règles ou uniquement par le Cache-Control ?
ex : si j'ai un max-age de 1 jour, et une règle d'expiration identique (en admettant quelle soit utile), est-ce que si je fais une requête 25 ou 48 h après la dernière, le cache va être invalidé et il va interrogé le serveur pour récupérer la dernière version ?
Je pose des questions précises mais j'ai besoin de connaitre le comportement exact du CDN, et pas juste ce que dit la doc, pour ensuite pouvoir bien l'utiliser et conseiller mes clients
Ce que je peux vous répondre, c’est que les règles de cache du panneau déterminent la fréquence de mise à jour du cache pour des ressources spécifiques de votre site.
Maintenant, que se passe‑t‑il lorsque votre .htaccess envoie aussi un Cache-Control ? Si le serveur d'origine envoie des en‑têtes de cache, le CDN les respecte. En pratique, cela signifie que le max‑age de votre .htaccess a priorité sur la règle du panneau. La règle du panneau sert de valeur par défaut pour les fichiers qui n'ont pas leurs propres en‑têtes, et également pour pouvoir purger sélectivement par extension, dossier ou URI.
Je suis désolé de ne pas pouvoir être plus précis malheureusement je n’ai pas beaucoup de connaissances dans ce domaine. Si vous avez une question précise, je vous recommande d’ouvrir un ticket d’assistance. Un technicien spécialisé pourra alors vous aider bien mieux.
Comment puis‑je créer un ticket de support?
Cliquez sur ce lien pour créer une demande d'assistance depuis le Centre d'aide d'OVHcloud. Ensuite, connectez‑vous avec vos identifiants OVHcloud.
Une fois connecté·e, cliquez ✉ Tickets sur le bouton Ticket creation. Sélectionnez le motif de votre demande, puis le produit et le service concernés. Ensuite, précisez votre demande afin d'accéder à des suggestions d'aide et de conseils personnalisés. Si cela ne répond pas à vos besoins, cliquez Next pour finaliser votre demande et créer un ticket de support. Veillez à fournir le maximum d'informations afin que nos équipes puissent mieux vous aider.