TECHNOLOGIES
Varnish, cache HTTP et reverse proxy
Varnish est un reverse proxy HTTP placé en amont de nos applications Symfony. Il met en cache les pages publiques et configure finement les headers des assets de nos fronts statiques — JS, CSS, images — pour des temps de chargement optimaux.
Cette fiche documente notre configuration VCL, notre stratégie de cache assets et notre intégration sur Clever Cloud.
POURQUOI VARNISH
Ce qui en fait notre solution de cache de référence
Varnish est activé sur nos projets à fort trafic quand PHP seul ne suffit plus. Voici les six raisons pour lesquelles nous le choisissons.
Réponses sans solliciter PHP
Varnish intercepte les requêtes HTTP en amont de PHP et sert les réponses mises en cache directement depuis la mémoire. Le serveur PHP n'est sollicité qu'une seule fois par ressource cachée.
Gestion fine des assets statiques
Les headers de cache pour les assets (JS, CSS, images) sont configurés directement dans les règles VCL — durée de vie longue, revalidation conditionnelle et contrôle précis selon le type de fichier et l'URL.
Règles VCL précises
Le langage VCL (Varnish Configuration Language) permet de définir finement ce qui est caché, pour combien de temps, selon quels critères (cookies, headers, URL) et comment le cache est invalidé.
Absorption des pics de trafic
En cas de pic d'audience, Varnish absorbe la charge sans que PHP ni la base de données ne soient submergés. Des milliers de requêtes simultanées sont servies à partir d'un seul objet en cache.
Protection de l'origine
En plus du cache, Varnish agit comme bouclier devant le serveur applicatif : il peut filtrer les requêtes malformées, limiter le débit et centraliser les headers de sécurité.
Intégration Clever Cloud
Sur Clever Cloud, Varnish s'ajoute comme add-on devant l'application PHP. La configuration VCL est versionnée dans le dépôt et déployée automatiquement avec le reste du projet.
NOTRE USAGE
Comment nous utilisons Varnish chez SmartBooster
Notre configuration Varnish couvre deux axes : le cache des pages Symfony publiques et la gestion des headers d'assets pour nos fronts statiques.
Cache des pages publiques Symfony
Les pages publiques sans session (landing pages, pages produit, blog) sont mises en cache par Varnish via les headers Cache-Control émis par Symfony. PHP n'est appelé qu'à la première requête.
Headers de cache pour les assets statiques
Les règles VCL définissent une durée de vie longue pour les JS, CSS et images générés par le front statique. Les assets versionnés (hash dans le nom de fichier) sont cachés indéfiniment, les autres configurés selon leur nature.
Pour aller plus loin
Documentation utile
Documentation, guides et ressources officiels de Varnish Software.