Bon, il y a une grosse difficulté : les petites inclusions sont des appels SPIP basés sur var_ajax=recuperer
. Et ces pages ne sont jamais mises en cache par Varnish (@fil me dit que c’est parce que dans ecrire/inc/actions.php
, la fonction ajax_retour
ne prévoit pas d’envoyer d’information de durée de vie du cache.
Du coup, tel quel, mon inclusion ESI est particulièrement productive (j’ai planté Flip-Zone hier et ce matin) : au lieu d’appeler une page SPIP en cache de Varnish (et si elle ne l’est pas : un appel Apache), j’appelle une page qui contient des dizaines d’inclusions ESI qui demandent à charger des pages SPIP en var_ajax
, pages qui ne sont justement pas en cache de Varnish, et déclenchent donc autant d’accès à Apache.
Pour l’instant, tout ce que j’ai trouvé, c’est d’ajouter un réglage à la sauvage dans Varnish, au niveau vcl_fetch
:
if (req.url ~ "var_ajax=recuperer") {
set beresp.ttl = 3660s;
set beresp.http.Cache-Control = "max-age=3600";
set beresp.http.Vary = "Accept-Encoding";
remove beresp.http.X-VARNISH-TTL;
}