Table des matières
Le système de cache
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.
Modifier ou désactiver le cache
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'); }
Purger le cache
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); } ?>
Utilisation du cache
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.