Mise en cache dynamique de SiteGround - Configuration, en-têtes et purge
Table des matières
Notre mise en cache dynamique est un mécanisme de mise en cache pleine page optimisé par NGINX qui est activé et exécuté par défaut sur tous les serveurs SiteGround. Les applications qui envoient les en-têtes appropriés pour permettre la mise en cache atteindront une vitesse de chargement de sites web imbattable. WordPress fonctionne normalement avec notre cache dynamique, mais d’autres applications peuvent nécessiter une configuration supplémentaire.
Fonctionnement de base
Sans la mise en cache dynamique, une requête utilisateur est gérée comme ceci:
Après cette requête initiale, le cache dynamique de SiteGround stockera le contenu de votre page dans la mémoire du serveur et les requêtes suivantes adressées aux mêmes pages seront traitées directement comme suit:
Délais d’expiration par défaut
La durée par défaut pendant laquelle nous gardons une page standard de votre site dans le cache est de 12 heures. Ce temps peut être écrasé par l’en-tête Cache-Control:max-age envoyé par l’application, ainsi les clients peuvent gérer le temps de cache de leur côté aussi.
Protection des données
Vous pouvez être légalement tenu, en vertu de la législation sur la protection de la vie privée ou de la protection des données, de protéger les données personnelles des utilisateurs de votre site web. Ainsi, alors que la mise en cache d’une page entière est géniale et incroyablement rapide, il y a certains cas dans lesquels elle ne devrait pas être utilisée. Par exemple, vous ne voudriez pas mettre en cache une page de panier ou une page de paiement. C’est juste un exemple, mais il y a beaucoup de cas similaires comme celui-ci. Habituellement, lorsqu’un utilisateur est connecté à votre site web ou effectue une transaction de commerce électronique, les informations dont il a besoin sont personnalisées et ne doivent pas être mises en cache. C’est pourquoi il existe des exclusions par défaut de la mise en cache dynamique que nous avons configurée.
Cookies:
Nous surveillons si votre navigateur a ces cookies et contournons le cache s’ils sont présents. Pour certains, nous surveillons la valeur du cookie tandis que pour d’autres, le cookie lui-même suffit:
wordpress_logged_in_, yith_wcwl_products, wp-postpass_, edd_items_in_cart=1, it_exchange_session_, wp_woocommerce_session, woocommerce_cart_hash, woocommerce_items_in_cart=1, DrupalS
URL exclues
Nous allons faire correspondre ces URL et les diffuser de manière dynamique tout le temps en fonction d’une correspondance partielle ou complète:
wp-login, preview=true, cart, my-account, checkout, addons, add-to-cart, wp-cron.php, xmlrpc.php, contact, task=registration, register, view=registration|administrator|remind |login, admin/content/backup_migrate/export, status.php, update.php, install.php, user, info, flag, ajax, aha
Nous vous recommandons de vérifier que les pages contenant des données personnelles seront exclues par défaut, en vous référant aux correspondances d’URL ci-dessus. Si vous souhaitez exclure d’autres URL, consultez ces instructions.
Mise en cache des en-têtes
La mise en cache dynamique de SiteGround fonctionne sur la base des en-têtes. Nous avons des en-têtes personnalisés pour le gérer, mais nous prenons en charge toutes les valeurs d’en-tête Cache-control standard prises en charge par toutes les applications CMS:
- cache-control: no-cache – transmettre cet en-tête indique à notre système de ne pas mettre en cache cette requête
- cache-control: max-age – cet en-tête indique à notre système de mettre cette requête en cache pendant X secondes
Comme nous respectons la mise en cache standard des en-têtes, votre application devrait fonctionner correctement, même sans une extension spécialisée.
Si vous développez votre propre script ou utilisez une application web personnalisée, vous pouvez exclure des URL en passant simplement l’en-tête approprié:
<php header( "Cache-Control: no-cache" ); ?> 6983chacun14
Vous pouvez également définir la durée pendant laquelle vos pages doivent être mises en cache:
<php header( "Cache-Control: max-age=6000" ); ?>
Purge du cache dynamique
Si vous utilisez WordPress, le meilleur moyen est d’installer et d’activer le plugin SiteGround Optimizer. Dans son onglet Cache, vous trouverez un bouton pour purger manuellement. Dans la plupart des cas, laisser l'option Purge automatique devrait suffire. En plus de cela, vous pouvez utiliser notre commande WP-CLI (fournie avec le plugin) pour purger le cache dynamique:
wp sg purge
En plus de notre plugin pour WordPress, vous pouvez purger manuellement le cache des Site Tools -> Onglet Mise en cache.
Test du cache dynamique
Comme la mise en cache dynamique de SiteGround fonctionne sur la base des en-têtes, le moyen le plus sûr est de faire une requête à votre site et de vérifier les en-têtes renvoyés. Vous pouvez utiliser l'onglet Réseau de l'inspecteur de votre navigateur, curl ou un outil en ligne simple comme Online Curl ( https://reqbin.com/curl ) avec l'option d'obtenir les en-têtes du site. Ensuite, vérifiez la valeur de notre en-tête de mise en cache:
- x-proxy-cache: HIT - requête traitée depuis le cache. Obtenir ceci signifie que votre page est mise en cache avec succès.
- x-proxy-cache: MISS - la requête est traitée de manière dynamique. Actualisez votre page et vérifiez-la à nouveau. Soit votre cache n'est pas activé, soit c'est la première fois que cette page est demandée au cours des 12 dernières heures. Notez que l’activation peut varier: l’agent utilisateur (ou l’option de cache spécifique au navigateur dans SiteGround Optimizer) divisera le cache en fonction des navigateurs, vous devrez donc peut-être charger la page même si vous y avez déjà accédé à partir d’un autre navigateur.
- x-proxy-cache: BYPASS - la requête est traitée dynamiquement car le cache a reçu l'ordre de l'ignorer. Cela signifie que soit vous êtes connecté à votre site web, soit vous testez l’une des pages de notre liste d’exclusion par défaut, soit vous avez un cookie dans votre navigateur qui déclenche la diffusion dynamique de cette page.