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

Pour un environnement de développement, vous pouvez réduire le cache à une seconde, en configurant max-age=1. Avec la valeur max-age=0, le cache sera désactivé, mais notez que les performances de votre instance seront réduites sans le système de cache en place, ce n'est pas recommandé.

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.

Les requêtes PURGE ne fonctionnent actuellement que depuis votre instance SimpleHosting, vous ne pouvez en faire de l'extérieur.

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);
}
?>

Pour WordPress, nous recommandons d'utiliser le plugin suivant http://wordpress.org/extend/plugins/varnish-http-purge/

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.