Cache statique : qu'est-ce que c'est et comment ça marche
Publié: 2022-06-30Les stratégies de mise en cache sont délicates, c'est pourquoi notre responsable du support, Ryan Belisle, a pris le temps d'expliquer une façon d'utiliser la mise en cache statique pour fournir un site plus rapide.
Continuez à lire pour apprendre :
- Qu'est-ce que le contenu statique du cache ?
- Avantages du cache statique.
- Limitations de la mise en cache statique.
- Comment implémenter la mise en cache statique.
- Comment désactiver la mise en cache statique.
Dans le commerce électronique, peu de choses sont plus misérables que de payer pour une campagne promotionnelle et de la regarder briller, seulement pour voir votre site planter et brûler pendant ce qui devrait être votre meilleure heure. Parfois, les promotions dépassent vos attentes et vos mesures proactives ne suffisent pas. Quoi alors ?
Une tactique pour extraire plus de performances de votre site à la dernière minute est une méthode appelée mise en cache statique.
La tête haute! Nous ne recommandons pas d'adopter une approche de dernière minute pour faire face aux pics anticipés de trafic Web. Cela s'applique lorsque vous avez déjà appliqué les meilleures pratiques d'optimisation de votre infrastructure ou de votre application et que vos résultats marketing dépassent toutes les attentes.
Qu'est-ce que le contenu statique du cache ?
Bien que de nombreuses formes de mise en cache soient disponibles, la mise en cache statique est une méthode permettant de convertir la page générée par la demande d'un utilisateur en un document HTML afin de répondre à toutes les demandes ultérieures sur cette même page.
Plutôt que le serveur interprète le code du site lui-même, interroge la base de données et renvoie un document HTML au client et finalement charge la page, la mise en cache statique enregistre un seul résultat des deux premières étapes et fournit ce document à toute autre personne faisant la demande .
Avantages de la mise en cache statique
Bien que basique, la mise en cache statique peut avoir un effet profond, en particulier dans les domaines suivants :
- Réduire les frais généraux : plutôt que d'avoir à générer des processus PHP pour gérer les requêtes vers les pages du site, le serveur Web renverra simplement le document HTML directement à la requête sur la page en cache statique.
- Fournir une "page de destination" pour tout le trafic de clics : au lieu de dépenser des ressources pour quiconque visite votre page d'accueil ou suit un lien vers une URL spécifique, cela fournit la page en cache par défaut sans interférer avec le fonctionnement normal des autres pages du site .
Limites de la mise en cache statique
Je tiens à souligner, cependant, que la mise en cache statique a des limites et ne doit généralement être utilisée que comme solution temporaire. Gardez à l'esprit:
- Un cache statique n'est que cela : statique. Toute modification apportée au site ne sera pas répercutée sur les pages mises en cache de cette manière.
- Les informations telles que les "articles dans le panier" ou d'autres éléments de données stockés dans les fichiers de session de vos clients ne fonctionneront pas sur ces pages.
Comment implémenter la mise en cache statique
Bien qu'il existe plusieurs façons d'implémenter la mise en cache statique, voici les étapes de base pour le faire manuellement :
1. Connectez-vous à votre serveur avec SSH.
2. Créez un répertoire séparé dans votre racine Web pour stocker les documents HTML utilisés dans le cache statique.
3. À l'aide de cURL ou de Wget, faites des requêtes aux pages cibles et stockez-les dans le répertoire sous leurs noms d'URI respectifs (index, produits, etc.)
4. Ajoutez des réécritures en haut de votre fichier .htaccess pour rediriger les requêtes vers les fichiers de cache statique, telles que les suivantes :
[code]
RewriteCond %{REQUEST_URI} ^/?example_category$ [NC]
RewriteRule .* https://www.domain.tld/static/example_category.html [R=302,L]
[/code]
Alternativement, vous pouvez également écrire un script pour gérer ce processus. L'exemple ci-dessous vous permet de créer un fichier avec une URL distincte sur chaque ligne. Ces URLs seront ensuite lues pour générer votre cache statique :
[langue de code = "bash"]
#!/bin/bash
# Validation des arguments de base
si [ "$#" -ne 2 ] ; alors
echo -e "Doit passer deux arguments au script.\n\nUtilisation : ./nexcess_static_cache_helper.sh domain url_list_file\n"
sortie 1
Fi
# Obtenir des données sur le domaine
domaine=$1
pages_file=$2
# Créer un répertoire pour les pages statiques dans le répertoire courant
cache_dir=./static_cache
si ! [[ -d $rep_cache ]] ; alors
mkdir $cache_dir
Fi
# Télécharger des pages statiques dans des fichiers HTML
URL_list=$(cat $pages_file)
pour l'URL dans $URL_list ; fais
request_uri=$(echo $URL | cut -d/ -f 4-)
si [[ -z "$request_uri" ]] ; alors
cache_page_name="index"
request_uri="/"
autre
cache_page_name=$(echo $request_uri | perl -pe 's,/|\.,_,g')
Fi
wget -q $URL -O $cache_dir/$cache_page_name.html
echo "$request_uri $cache_page_name" >> $HOME/temp_url.file
Fini
# Formater un bloc pour le htaccess
echo -e "########"
echo -e "# START : Réécritures d'URL de cache statique générées le $(date)"
echo -e "########"
echo -e "Moteur de réécriture activé"
chat $HOME/temp_url.fichier | pendant la lecture de la page uri ; fais
echo "RéécrireCond %{REQUEST_URI} ^/?${uri}$ [NC]\n"
echo "RewriteRule .* https://www.${domain}/static_cache/$page [R=302,L]\n"
Fini
echo -e "######"
echo -e "# END : Réécritures d'URL de cache statique générées le $(date)"
echo -e "######"
rm $HOME/temp_url.fichier
[/code]

Pour utiliser le script ci-dessus :
1. Accédez à la racine Web de votre site, puis créez un fichier nommé cache_list.txt, ou ce que vous préférez.
2. Ouvrez le fichier. Ajoutez l'URL de chaque page qui doit être mise en cache statique, en utilisant une nouvelle ligne pour chaque entrée d'URL. Cela devrait ressembler à ce qui suit :
[code]
https://www.exemple.com/
https://www.exemple.com/vente
https://www.exemple.com/produits
[/code]
Enregistrez le fichier, puis créez un fichier avec le script ci-dessus et enregistrez-le sous nexcess_static_cache_helper.sh , ou le nom que vous préférez.
Rendre le fichier exécutable :
[code]chmod +x nexcess_static_cache_helper.sh[/code]
Lorsque vous êtes prêt, exécutez le script, mais remplacez-le par votre propre nom de fichier et votre nom de domaine :
[code]./nexcess_static_cache_helper.sh example.com cache_list.txt[/code]
Cela créera un répertoire static_cache sous votre racine Web contenant les documents HTML à utiliser pour le cache statique. De plus, votre terminal affichera une sortie ressemblant à :
[code]
########
# START : Réécritures d'URL de cache statique générées le lundi 18 septembre 15:49:11 EDT 2017
########
Moteur de réécriture activé
RewriteCond %{REQUEST_URI} ^/?/$ [NC]\n
Règle de réécriture .* https://www.example.com/static_cache/index [R=302,L]\n
RewriteCond %{REQUEST_URI} ^/?sale$ [NC]\n
RewriteRule .* https://www.example.com/static_cache/sale [R=302,L]\n
RewriteCond %{REQUEST_URI} ^/?products$ [NC]\n
RewriteRule .* https://www.example.com/static_cache/products [R=302,L]\n
######
# FIN : Réécritures d'URL de cache statique générées le lundi 18 septembre à 15:49:11 EDT 2017
######
[/code]
Copiez le bloc ci-dessus et collez-le en haut de votre fichier .htaccess pour le site, qui devrait généralement se trouver dans votre répertoire actuel.
Le cache statique devrait maintenant être activé. Dans un esprit de bonne gestion, supprimez les fichiers que nous avons générés aux étapes précédentes :
[code]rm nexcess_static_cache_helper.sh cache_list.txt[/code]
Comment désactiver la mise en cache statique
Pour désactiver la mise en cache statique, supprimez le bloc de code placé dans le fichier .htaccess.
De plus, si vous devez régénérer les fichiers, exécutez à nouveau le script et il remplacera les documents HTML par des versions plus récentes. Je recommanderais également de remplacer le bloc de code .htaccess, juste pour mettre à jour l'horodatage pour référence future.
Maintenant tu sais
Comme indiqué précédemment, il ne s'agit que d'une méthode temporaire et ne doit pas être utilisée comme stratégie principale d'optimisation des performances. Pour des solutions à long terme, consultez notre guide d'optimisation, implémentez un CDN ou contactez notre équipe d'assistance pour explorer des options supplémentaires telles que l'hébergement de Magento, WooCommerce ou WordPress.
Ou consultez les packages WordPress gérés de Nexcess pour voir comment vous pouvez optimiser les performances de votre site.