Closermag, Nabilla et cache http

Le vendredi 7 novembre 2014 du fait de l’actualité people autour de la starlette Nabilla la plateforme hébergent le site Closermag.fr que j’administre enregistre +63% de requête supplémentaire. Je parle bien de requête http et non pas de visiteur unique qui est une donnée commercial qui ne représente en rien l’effort de production. Quand au page vue … elles sont constituées de plusieurs requête http d’un nombre variable, donc je n’utilise pas non plus cette mesure.

Il en ressort que le cache http est correctement configuré couplé avec l’utilisation de varnish  est une solution puissante pour absorber les pics d’audiences

Le challenge est la gestion des images. La photo à une part importante dans la mise en page et la ligne éditorial de closermag.fr . En conséquence les images sont nombreuses et de taille importantes. Différent choix ont été fait :

  • Isoler leur distribution dans un silo dédié basé sur varnish en frontend et nginx en backend. Le varnish bien que disposant d’un cache mémoire important de 8Go ne peux contenir l’intégralité des images, en conséquence avec nginx nous assurons son alimentation de façon performante.
  •  Les images de design du site on une durée de validité pour mise en cache d’une journée et celle d’illustration d’une année. Nginx ajoute des entêtes d’instruction du cache http.
  • Nous avons en outre fait le choix d’utiliser de multiple sous domaine afin de paralléliser les appels au maximum et de contourner les limites de certains navigateurs
  • Les images sont traitées afin d’en limiter le poids par la suppression des données Exif . Dans le processus d’alimentation en photos de Closermag l’utilisation de nombreux logiciel avait tendance à hypertrophier le volume de ces données.

Le 7 novembre 2014 un unique serveur varnish a assuré :

  • Un taux de réponse de 95% avec son cache, donc seul 5% des requêtes on du être demandé au backend ngnix.
  • Le pic de bande passante  de 149,91 Mb/s.
  • La réponse à une moyenne de 2660 req/s

CaliOpen : un projet d’interêt publique à suivre

Un projet de messagerie respectueux de la vie privée des utilisateurs et étendu aux emails, SMS, à l’IRC, aux messages privés de Twitter,  au WebRTC.

Un logiciel libre, que n’importe quel administrateur système puisse installer aussi facilement que wordpress.

CaliOpen Capture écran
CaliOpen

Avec le soutiens de Gandi et de la quadrature du net

Le projet avance sur GitHub et la FAQ vient d’être mise en ligne en plusieurs langues . En outre une maquette est déjà visible.

La quadrature du Net

Varnish: Qui répond ?

Qui répond ?

Dans une architecture complexe comportant une ou plusieurs fermes de serveur jouant le même rôle il est parfois possible qu’un serveur soit pas à niveau ou à jour et diffuse une version obsolète. Comment savoir quel serveur à alimenté le varnish avec le contenu incriminé.

C’est simple, il faut taguer avec un champ http comportant le nom du serveur émetteur.

vcl_fetch

Une simple ligne dans vcl_fetch pour avoir le nom du backend

# Set X-Served-By with backend name
set beresp.http.X-Served-By = beresp.backend.name;

vcl_deliver

Une autre dans vcl_deliver pour avoir le nom du varnish

 # Set Via with the varnish hostname
 unset resp.http.Via;
 set resp.http.Via = server.hostname;

Inspecter les headers http

Sur n’importe quelle page de votre site inspecter les headers via les dev tools de Chrome pour savoir quel frontal à généré le contenu et quelle varnish l’a ensuite distribué.

Header http X-Served-By
Header http X-Served-By

Run linux since 1994 and this web site since 2002