Votre instance bénéficie d'un puissant système de cache fonctionnant avec Varnish (lien Wikipedia en anglais).
Celui-ci vous permet de distribuer le contenu de votre site web à un grand nombre de visiteurs sans utiliser les ressources de votre instance.
Le délai de conservation d'une page en cache est de 120 secondes par défaut. Pour modifier cette valeur, vous pouvez ajouter le header suivant en choisissant la valeur du max-age (en secondes):
HTTP Cache-Control: max-age=200
Par exemple, en php :
header("Cache-Control: max-age=1");
Example pour un fichier .htaccess si le site est statique :
Header add Cache-Control "max-age=1"
Example pour node.js : (FOnctionne avec les librairies HTTP standard, et le framework 'Express')
function (request, response) { response.setHeader('Cache-Control', 'max-age=1'); }
Il vous est possible de purger le cache d'une URL particulière en lui envoyant une requête HTTP PURGE
.
Voici un exemple en PHP :
<?php /* purge.php * Purge an url on this host */ header("Cache-Control: max-age=1"); // don't cache ourself error_reporting(E_ALL); ini_set("display_errors", 1); // Set to true to hide varnish result define("SILENT", false); $path = isset($_GET["path"]) ? $_GET["path"] : ""; $purge_url = "http://" . $_SERVER["HTTP_HOST"] . "/$path"; if ( $ch = curl_init($purge_url) ) { curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PURGE"); curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); curl_setopt($ch, CURLOPT_NOBODY, SILENT); curl_exec($ch); curl_close($ch); } ?>
Il n'existe pour l'instant pas de statistiques concernant l'utilisation du cache. Vous pouvez par ailleurs vérifier que votre instance l'utilise en regardant les headers HTTP ; par exemple :
$ curl -I http://simple.gandi-test.fr/ HTTP/1.1 200 OK Server: Apache/2.4.9 X-Powered-By: PHP/5.4.4-14+deb7u12.1 X-Pingback: http://simple.gandi-test.fr/xmlrpc.php Content-Type: text/html; charset=UTF-8 Vary: Accept-Encoding Date: Tue, 22 Jul 2014 23:42:42 GMT Connection: keep-alive Via: 1.1 varnish Age: 42
La présence du header HTTP “Age” avec une valeur différente de zéro valide que la page a été prise dans le cache et non sur l'instance.