Définition
Il est bon de savoir que la vitesse de chargement de votre site est primordial pour assurer le succès de celui-ci. Pour une entreprise par exemple cela donne une première image à ces visiteurs. De plus, un chargement trop long de ce dernier peut avoir un impact sur le référencement de votre site sur les principaux moteurs de recherche et ne permettra pas une exposition suffisante pour faire vivre celui-ci.
Il n'existe pas de seuil à ne pas dépasser concernant le chargement de vos pages Web. Cependant, le temps de chargement de la plupart des sites internet est inférieur à trois secondes.
L’outil LWS Cache est un système conçu et développé par LWS permettant d’optimiser les performances de chargement de votre site internet grâce à l’utilisation de mécanismes de cache avancé, configurés au niveau du serveur. L’outil utilise les technologies apportées par NGINX.
NGINX est un serveur web orienté performance permettant de gérer beaucoup plus de requêtes qu'Apache (voir notre billet de blog intitulé “Apache VS Nginx : Test de performance”).
Avec les bonnes configurations mises en place, NGINX permet d’accueillir plus de requêtes sur votre site internet, et à la fois d’accélérer le temps de chargement de votre page tout en réduisant votre consommation CPU et mémoire.
Procédure
Il est bon de savoir que la vitesse de chargement de votre site est primordial pour assurer le succès de celui-ci. Pour une entreprise par exemple cela donne une première image à ces visiteurs. De plus, un chargement trop long de ce dernier peut avoir un impact sur le référencement de votre site sur les principaux moteurs de recherche et ne permettra pas une exposition suffisante pour faire vivre celui-ci.
Il n'existe pas de seuil à ne pas dépasser concernant le chargement de vos pages Web. Cependant, le temps de chargement de la plupart des sites internet est inférieur à trois secondes.
Accélérez le chargement de vos pages en tirant parti du cache avancé proposé par LWS Cache, un cache serveur basé sur Varnish, conçu pour réduire considérablement le temps d’exécution des scripts et alléger vos serveurs. Vous avez un site WordPress ? Gérez ce cache dans LWS Optimize, reconnu comme le meilleur plugin de cache Wordpress optimisé pour améliorer les performances globales. Il est disponible gratuitement sur le répertoire officiel en tant que meilleur plugin de cache Wordpress gratuit.
L’outil LWS Cache est un système conçu et développé par LWS permettant d’optimiser les performances de chargement de votre site internet grâce à l’utilisation de mécanismes de cache avancé, configurés au niveau du serveur. Il s'appuie sur Varnish, un cache placé devant votre site : les pages déjà calculées sont gardées en mémoire et resservies sans relancer PHP ni MySQL, ce qui accélère l'affichage et allège votre hébergement.
1. Fonctionnement sans cache
Pour mieux comprendre le fonctionnement, nous allons voir dans un premier temps comment cela se passe sans cache pour que le visiteur puisse voir votre site.

Traitement d'une requête HTTP sans LWS Cache
1. Le visiteur demande la page au serveur web. Exemple : index.php
2. Le serveur web effectue les exécutions de scripts nécessaires (PHP, Perl, NodeJS, …)
3. Le serveur web reçoit le résultat de l’exécution.
4. Le serveur web envoie la page HTML issu du résultat de l’exécution du script
2. Fonctionnement avec LWS Cache
Lorsque LWS Cache est activé, un serveur de cache est introduit entre le visiteur et le serveur web.
Le but est de réduire le nombre d’exécutions de scripts nécessaire en gardant le résultat de l’exécution en mémoire pour les prochaines requêtes nécessitant la même réponse. Ceci permet de ne plus exécuter plusieurs fois le même script pour aboutir à un même résultat.
Ainsi, nous éliminons le temps d’attente de l’exécution du script sur le temps de chargement de la page, et par la même occasion, nous économisons les ressources utilisées lors de l’exécution du script.

Traitement d'une requête HTTP avec LWS Cache
1. Le visiteur demande la page au serveur web. Exemple : index.php
2. LWS Cache vérifie si la page a été déjà générée et gardée dans la mémoire cache
3. Une fois la page générée, LWS Cache détermine si la page peut être gardée en cache (via les headers, URL, …)
On constate que lorsqu’une page est stockée dans la mémoire cache, le traitement par le serveur web ainsi que l’exécution du script est évité.
Lorsque le service web fournit une nouvelle réponse à LWS Cache, celui-ci est analysé afin de déterminer si oui ou non il devrait être gardé en mémoire cache pour une utilisation future.
Certains contenus de pages ne devraient pas être stockés en mémoire cache, comme le résultat d’un formulaire d’inscription, le résultat d’une page de paiement, … car ils contiennent des données qui varient selon les utilisateurs et selon les événements.
Pour déterminer si une page peut être gardé en cache ou non, LWS Cache utilise plusieurs mécanismes :
Si une requête HTTP est de type GET et qu’il n’a pas d’instruction de cache navigateur précis, celui-ci est gardé dans le microcache durant quelques secondes.
Le microcache permet ainsi de pallier aux soucis de pics de demandes sur des pages non mises en cache. Par exemple, ceci permet de solutionner les surcharges et lenteurs en cas d’une vague de recherche d’un même produit sur une boutique ecommerce.
Dans votre espace client LWS, ouvrez « Domaine(s) & Hébergement(s) », puis cliquez sur « Gérer » à côté de l'hébergement concerné.
Dans la rubrique « Optimisation et performance » du tableau de bord, cliquez sur « LWSCache (Varnish) ». La fenêtre « LWS Cache basé sur Varnish » s'ouvre par-dessus le tableau de bord.

Dans « Activer le cache », cochez « Oui (recommandé) » pour l'activer, ou « Non » pour le désactiver (par exemple le temps de travaux sur votre site).
Cliquez sur « Enregistrer ». Le « Statut actuel » affiche « Activé » ou « Désactivé ». LWS Cache est actif sur votre hébergement sous quelques minutes.
Purger (vider) le cache oblige LWS Cache à recalculer les pages à la visite suivante : c'est utile quand une modification de votre site n'apparaît pas encore en ligne. Vous pouvez purger depuis une extension WordPress de LWS, depuis un terminal ou depuis un script PHP. Aucune de ces méthodes ne demande de jeton ni d'identifiant.
Cette partie concerne LWS Cache, le cache des hébergements LWS Panel. Pour Fastest Cache, le cache des hébergements cPanel, voir l'aide sur Fastest Cache pour cPanel.
L'extension WordPress LWS Optimize vous permet, entre autres options d'optimisation, de purger automatiquement le cache serveur (LWS Cache) de vos pages lorsque vous effectuez des modifications sur votre site. Pour ce faire, rendez-vous dans les paramètres de l'extension puis dans l'onglet « Mise en cache ».


Ensuite, activez l'option « Cache serveur » afin d'activer la purge automatique.

Si vous souhaitez vider manuellement le cache de LWS Cache, cliquez sur le bouton « Vider le cache » afin de procéder à sa purge complète.

L'extension WordPress LWS Cache vous permet de purger automatiquement le cache de vos pages lorsque vous les modifiez ou lors de l'ajout ou de l'approbation de commentaires.
L'extension est fournie dans toutes les installations automatiques de WordPress via LWS Panel.
Pour la gérer, une fois connecté à votre console d'administration WordPress, rendez-vous dans le menu « LWSCache ».

Depuis la page de réglage, vous pouvez activer ou désactiver le vidage automatique, définir dans quels cas vider automatiquement le cache LWS Cache et purger entièrement le cache.
Il faut cocher la case « Activer la purge automatique » pour que toutes les options apparaissent.

Un bouton de vidage complet du cache est accessible partout dans la console d'administration de WordPress, dans la barre d'accès rapide située en haut de l'écran.

LWS Cache accepte la purge par une requête HTTP de méthode PURGE, la même que celle qu'envoient les extensions LWS Cache et LWS Optimize. Cette requête doit partir de votre hébergement : lancée depuis votre ordinateur, elle est refusée avec l'erreur « 403 Not allowed ».
Deux possibilités :
Le Terminal web n'est pas inclus dans toutes les formules : s'il vous propose de changer de formule, utilisez SSH, ou une tâche Cron qui lance le script PHP présenté plus bas.
Tapez la commande suivante, en remplaçant l'adresse par celle de la page modifiée, telle qu'elle s'affiche dans votre navigateur :
curl -X PURGE https://exemple.com/ma-page/
Pour vider tout le cache du site, lancez ces deux commandes, les mêmes requêtes que celles des extensions de LWS (remplacez exemple.com par votre domaine) :
curl -X PURGE 'https://exemple.com/*'
curl -X FULLPURGE 'https://exemple.com/*'
Si votre site s'affiche aussi en http://, relancez ces deux commandes en remplaçant https:// par http:// : les extensions de LWS purgent les deux adresses.
Votre site est un WordPress avec l'extension LWS Cache ou LWS Optimize ? Vous pouvez aussi lancer la commande de l'extension depuis le dossier de votre WordPress (le Terminal web s'ouvre dans le dossier htdocs). Avec LWS Cache :
wp lws-cache purge-all
Avec LWS Optimize :
wp lwsoptimize servercache clear
Ces deux commandes WordPress affichent toujours un message de réussite, même quand la purge a été refusée : vérifiez donc le résultat comme indiqué à l'étape suivante.
Ouvrez la page dans une fenêtre de navigation privée : votre modification doit s'afficher. Si la commande répond « 403 Not allowed », elle n'a pas été lancée depuis votre hébergement : reprenez à l'étape 1.
Le script suivant vide le cache de tout le site, ou de quelques pages seulement. Copiez-le dans un fichier purge-cache.php de votre hébergement, puis indiquez votre domaine dans $site. Pour ne purger que certaines pages, listez-les dans $pages.
<?php
/*
* Purge du cache LWS Cache (Varnish) d'un hebergement LWS Panel.
* A lancer depuis votre hebergement : Terminal web, SSH ou tache Cron.
* Aucun jeton n'est necessaire.
*
* $pages vide : purge complete du site
* $pages rempli : purge des seules pages indiquees
*/
if (PHP_SAPI !== 'cli') {
http_response_code(403);
exit('A lancer depuis un terminal ou une tache Cron.');
}
$site = 'exemple.com';
$pages = []; // exemple : ['/', '/contact/']
function purger($url, $methode = 'PURGE')
{
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => $methode,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 20,
]);
curl_exec($ch);
return curl_getinfo($ch, CURLINFO_HTTP_CODE);
}
foreach (['https', 'http'] as $protocole) {
if (empty($pages)) {
// Les deux requetes qu'envoient les extensions LWS Cache et LWS Optimize
foreach (['PURGE', 'FULLPURGE'] as $methode) {
echo "$methode $protocole://$site/* : HTTP " . purger("$protocole://$site/*", $methode) . PHP_EOL;
}
} else {
foreach ($pages as $page) {
echo "PURGE $protocole://$site$page : HTTP " . purger("$protocole://$site$page") . PHP_EOL;
}
}
}Lancez-le depuis le terminal, dans le dossier où vous l'avez placé :
php purge-cache.phpPour le lancer automatiquement, par exemple chaque nuit, créez une tâche Cron avec la commande php /htdocs/purge-cache.php (voir Comment créer une tâche cron depuis le LWS Panel). Le script refuse de s'exécuter s'il est appelé depuis un navigateur : un visiteur ne peut donc pas vider votre cache. Un code HTTP 403 dans le résultat signifie que la purge a été refusée parce que le script n'a pas été lancé depuis votre hébergement.
Trucs et astuces
Au-delà de l’interface LWS Panel permettant de purger le cache, il est possible de purger le cache via les méthodes suivantes :
1. Purge du cache avec LWS Cache pour Wordpress
Le plugin Wordpress LWS Cache vous permet de purger automatiquement le cache de vos pages lorsque vous modifiez celles-ci ou lors de l'ajout/approbation de commentaires.
Le plugin est fourni dans toutes les installations automatiques de Wordpress via LWS Panel.
Pour gérer le plugin, une fois connecté à votre console d'administration Wordpress, rendez-vous dans le menu "LWS Cache"

Depuis la page de réglage, vous pouvez activer/désactiver le vidage automatique, définir dans quels cas vider automatiquement le cache LWS Cache et purger entièrement le cache.
Il est à noter qu'il faut cocher la case "Activer la purge automatique" pour que toutes les options apparaissent.

Un bouton de vidage complet du cache est accessible partout dans la console d'administration de Wordpress dans la barre d'accès rapide situé en haut de l'écran.

2. Purge du cache via cURL
Le token d'authentification nécessaire pour l'exécution de ces commandes est disponible dans votre espace client LWS Panel.
Purger le cache d'une page
curl -H 'lwsapitoken: <token lié à votre domaine>' 'http://mon-site-web.com/--api/cache-purge/exemple.php'
Ceci permettra de purger le cache de l'URL 'http://mon-site-web.com/exemple.php'Purger complètement le cache d'un site
curl -H 'lwsapitoken: <token lié à votre domaine>' 'http://mon-site-web.com/--api/purge-cache/*'3 codes de retours sont possibles :
Code HTTP 200 : la purge s’est bien passée sans erreur.
Code HTTP 404 : aucune mise en cache pour la ressource demandée.
Code HTTP 403 : le token indiqué n'est pas valide pour le domaine
3. Purge via un code PHP
<?php
$ch = curl_init ( );
curl_setopt ( $ch, CURLOPT_URL, $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['SERVER_NAME'] . '/--api/cache-purge' . $_SERVER['REQUEST_URI'] );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt ( $ch, CURLOPT_HTTPHEADER, array ( 'lwsapitoken:' . getenv ( 'lwsapitoken' ) ) );
$result = curl_exec ( $ch );
$httpCode = curl_getinfo ( $ch, CURLINFO_HTTP_CODE );
curl_close ( $ch );
?>
URL de purge : <?=$_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['SERVER_NAME'] . '/--api/cache-purge' . $_SERVER['REQUEST_URI'];?>
<br />
Result: <?=$result;?>
<br />
HTTP Code: <?=$httpCode;?>Ce code permet de vider le cache du fichier PHP dans lequel il se trouve.