TECHNOLOGIES / Varnish
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 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.
Pour aller plus loin
Approfondir votre réflexion
Varnish s'intègre dans notre stack d'hébergement pour garantir des temps de réponse optimaux sur vos applications Symfony en production.
Notre framework PHP de référence. Varnish est systématiquement intégré devant les projets Symfony à fort trafic pour absorber la charge.
Chaque logiciel sur mesure SmartBooster est pensé avec une stratégie de cache adaptée à ses contraintes de charge et de mise à jour.
Vous avez un projet ?
Contactez-nous pour savoir comment nous pouvons vous aider.