Bonjour,
Maintenant que je parviens à gérer la durée de vie du cache nginx, je me heurte à un nouveau problème : son invalidation conditionnelle.

Je m'explique : nous avons mis en place un frontal qui ne fait que du cache de ressources statiques avec nginx. Ca soulage les backend web et c'est plus rapide (on met le cache en ramdisk et on regarde pour du memcached).

Tous contents, on est partis sur des valeurs astronomiques de cache des ressources statiques (genre 7 jours). Rapidement, on s'est fait engueulés parce que machin qui avait rajouté trois couleurs sur son bandeau de pub devait attendre 7 jours pour que ce soit visible.

Alors on a rajouté la directive proxy_cache_bypass qui permet d'invalider une ressource cachées via une requête spécifique.

Très bien, sauf qu'un jour on nous a demandé de pouvoir invalider le cache d'un grand nombre de fichiers d'un coup et on a dû scripter le truc avec du curl.

J'aimerais bien passer la seconde là dessus en invalidant le cache d'un fichier statique automatiquement lorsque le fichier change sur le disque. La première qui me vient en tête est inotify : on monitore le filesystem et on génère une requête d'invalidation à chaque fois qu'un fichier statique change (avec le timestamp unix).

Ca paraît faisable sur le papier mais je me demande si mon idée ne va pas se transformer en usine à gaz.

Pour le moment, on a mis un cache à 5 min mais du coup, le cache commence gentiment à perdre de son intérêt, à part en cas de pic de consultation des sites.

Du coup, est-ce quelqu'un a déjà rencontré/résolu ce type de problématique et peut partager ses conclusions ?

Merci d'avance,
Julien
_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/

Répondre à