Purge de Cache WordPress sur VPS
Invalidation de cache instantanée et automatique pour WordPress sur tout VPS ou serveur dédié basé sur RHEL.
-
Invalidation Automatique
Le cache est purgé automatiquement lorsque vous modifiez des articles, des pages ou des commentaires.
-
Précision Chirurgicale
Seule la page modifiée est purgée—votre site entier reste mis en cache et rapide.
-
Configuration en 5 Minutes
Configuration simple avec nos modules NGINX préconstruits.
-
Mise en Cache Basée sur le Disque
Le cache survit aux redémarrages NGINX—pas de cache froid après les mises à jour.
Prérequis
- Un VPS ou serveur dédié exécutant RHEL 7/8/9, Rocky Linux, AlmaLinux, ou Amazon Linux
- NGINX installé (depuis le dépôt GetPageSpeed recommandé)
- Site WordPress avec mise en cache de page complète configurée
Configuration Rapide
Étape 1 : Installer le Module de Purge de Cache
# Installer le dépôt GetPageSpeed
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
# Installer le module de purge de cache
dnf -y install nginx-module-cache-purge
Activez le module dans /etc/nginx/nginx.conf :
load_module modules/ngx_http_cache_purge_module.so;
Étape 2 : Configurer le Cache Proxy NGINX
Si vous n'avez pas encore configuré la mise en cache proxy, voici une configuration complète :
Éditez /etc/nginx/nginx.conf ou créez /etc/nginx/conf.d/proxy-cache.conf :
# Définir la zone de cache (dans le bloc http)
proxy_cache_path /var/cache/nginx/wordpress
levels=1:2
keys_zone=wordpress:100m
max_size=10g
inactive=60m
use_temp_path=off;
Dans votre bloc serveur :
server {
listen 80;
server_name example.com;
# Activer la mise en cache
proxy_cache wordpress;
proxy_cache_valid 200 60m;
proxy_cache_valid 404 1m;
proxy_cache_key "$scheme$request_method$host$request_uri";
# Ajouter l'en-tête de statut de cache
add_header X-Cache-Status $upstream_cache_status;
# Activer la méthode PURGE (localhost uniquement)
proxy_cache_purge PURGE from 127.0.0.1;
location / {
proxy_pass http://127.0.0.1:8080; # Votre backend
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Créez le répertoire de cache :
mkdir -p /var/cache/nginx/wordpress
chown nginx:nginx /var/cache/nginx/wordpress
nginx -t && systemctl reload nginx
Étape 3 : Installer le Plugin Proxy Cache Purge
- Allez dans Plugins → Ajouter Nouveau
- Recherchez "Proxy Cache Purge" (slug :
varnish-http-purge) - Cliquez sur Installer Maintenant, puis Activer
wp plugin install varnish-http-purge --activate
Étape 4 : Configurer Proxy Cache Purge
Dans l'administration WordPress :
- Allez dans Réglages → Proxy Cache Purge
- Réglez "Définir l'IP Personnalisée" sur :
127.0.0.1 - Cliquez sur Enregistrer les Paramètres
Paramètre Critique
Le plugin doit envoyer des requêtes PURGE à 127.0.0.1 (localhost), pas à votre IP publique.
Étape 5 : Configurer le Backend de Cache NGINX
À partir de Proxy Cache Purge 5.9.0, le plugin prend en charge nativement le format de purge wildcard de NGINX. Configurez-le pour utiliser le backend NGINX :
- Allez dans Proxy Cache Purge → Paramètres
- Sous Cache Backend, sélectionnez NGINX
- Cliquez sur Enregistrer les Paramètres
Ajoutez à votre wp-config.php :
define( 'VHP_PURGE_BACKEND', 'nginx' );
Héritage : Version du Plugin < 5.9.0
Si vous exécutez Proxy Cache Purge version inférieure à 5.9.0, créez
wp-content/mu-plugins/nginx-cache-purge-fix.php :
<?php
/**
* Nom du Plugin : NGINX Cache Purge Fix
* Description : Ajoute un wildcard aux URLs de purge pour la compatibilité avec l'en-tête Vary
*/
add_filter("vhp_purgeme_path", function($purgeme, $schema, $host, $path, $pregex, $p) {
if (empty($pregex)) {
$purgeme .= "*";
}
return $purgeme;
}, 10, 6);
Tester la Configuration
# 1. Mettre en cache une page
curl -sI http://127.0.0.1/sample-page/ -H 'Host: example.com' | grep X-Cache
# X-Cache-Status: MISS (première requête)
curl -sI http://127.0.0.1/sample-page/ -H 'Host: example.com' | grep X-Cache
# X-Cache-Status: HIT (mis en cache !)
# 2. Purger la page
curl -sX PURGE 'http://127.0.0.1/sample-page/*' -H 'Host: example.com'
# <h1>Purge réussie</h1>
# 3. Vérifier que le cache est vidé
curl -sI http://127.0.0.1/sample-page/ -H 'Host: example.com' | grep X-Cache
# X-Cache-Status: MISS (vidé !)
Comment Ça Marche
flowchart LR
subgraph WP["WordPress"]
A["📝 Article Mis à Jour"] --> B["🔌 Plugin"]
end
B -->|"PURGE /post/*"| C
subgraph NG["NGINX"]
C["🗑️ cache_purge"] --> D["✅ Page supprimée"]
end
E["👤 Visiteur"] -->|"GET /post/"| NG
D --> F["Contenu frais servi"]
style WP fill:#4a90d9,stroke:#2d5986,color:#fff
style NG fill:#009639,stroke:#006325,color:#fff
Conseils de Performance
-
Utiliser un Disque RAM pour le Cache Chaud
Montez
/var/cache/nginxen tant que tmpfs pour des lectures de cache aussi rapides que possible.mount -t tmpfs -o size=2G tmpfs /var/cache/nginx -
Normaliser les En-têtes de Compression
Réduisez les variantes de cache avec le module compression-normalize.
-
Contourner le Cache pour les Utilisateurs Connectés
proxy_cache_bypass $cookie_wordpress_logged_in;
Considérations de Sécurité
La restriction from 127.0.0.1 est critique :
proxy_cache_purge PURGE from 127.0.0.1;
Sans cela, n'importe qui pourrait purger votre cache en envoyant des requêtes PURGE.
Pour une sécurité supplémentaire, vous pouvez également :
# Autoriser uniquement PURGE depuis des IP spécifiques
proxy_cache_purge PURGE from 127.0.0.1 10.0.0.0/8;
# Ou exiger une authentification
# (non couvert dans ce guide)
Dépannage
X-Cache-Status affiche toujours MISS
- Vérifiez que la directive proxy_cache est activée
- Vérifiez que le répertoire de cache existe et est accessible en écriture par nginx
- Vérifiez que les règles
proxy_cache_bypassne se déclenchent pas toujours
PURGE retourne 404
- Assurez-vous que la directive
proxy_cache_purgeest dans le bon bloc de localisation - Vérifiez que le module est chargé :
nginx -V 2>&1 | grep cache_purge
Le répertoire de cache se remplit
- Ajustez
max_sizedansproxy_cache_path - Réduisez le délai d'inactivité
- Exécutez
nginx -s reloadpour déclencher le nettoyage du gestionnaire de cache
Liens Associés
-
Module cache-purge
Référence complète des directives
-
Module compression-normalize
Réduisez les variantes de cache
-
Guide de Cache FastCGI
Méthode de mise en cache alternative pour PHP-FPM