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.

Varnish

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

Site officiel Varnish Software

Documentation, guides et ressources officiels de Varnish Software.