Utiliser Varnish avec WP Rocket

Dans cette doc :

Add-on Varnish

Vous savez probablement si votre site utilise Varnish. Si vous n'êtes pas sûr, vous pouvez vérifier auprès de votre hébergeur.

Si vous êtes chez WP Serveur, Cloudways, WP Engine WPX ou FlyWheel, WP Rocket détectera ces hébergeurs et activera l’Add-on Varnish automatiquement. Chez SiteGround et Kinsta, vous n'avez pas non plus besoin d'activer cette option, car nous synchronisons déjà le cache de WP Rocket avec leur cache serveur.

Dans d'autres environnements, si vous savez que votre serveur utilise Varnish, basculez l'état de l’ Add-on Varnish sur ON. Ansi le cache Varnish sera purgé en même temps que le cache de WP Rocket :

Cela signifie que si vous utilisiez l'extension Varnish HTTP Purge, elle n'est plus nécessaire.

Mise en Cache pour Mobile

Par défaut, l' option de mise en Cache pour Mobile de WP Rocket crée un ensemble séparé de fichiers de cache pour les appareils mobiles. Avec cette approche, tout contenu spécifique au mobile sera mis en cache et servi indépendamment.
Vous devez vous assurer que votre configuration Varnish est configurée pour distinguer les requêtes mobiles des requêtes de bureau. Dans le cas contraire, la mauvaise version du cache pourrait être servie.

WP Rocket versions antérieures à 3.16

Si vous souhaitez utiliser la sous-option Séparer les fichiers de cache pour les appareils mobiles, vous devez également vous assurer que votre configuration Varnish est configurée pour distinguer les appareils mobiles des appareils de bureau.

Configuration recommandée pour Varnish

Nous vous recommandons d'utiliser ce guide pour mettre en place votre configuration Varnish : https://www.varnish-software.com/wiki/content/tutorials/wordpress/wp_step_by_step.html

Les requêtes de purge du WP Rocket suivent automatiquement cette configuration.

Veuillez noter qu'il y a une petite faute de frappe dans le modèle de configuration de Varnish figurant dans la documentation :
ban("req.url ~ " + req.url + " && req.http.host ~ " + req.http.host); 
devrait être : 
ban("req.url ~ " + req.url + " && req.http.host ~ " + req.http.host);

IP Varnish personnalisée(s)

Notre intégration Varnish suppose que votre serveur utilise l'IP par défaut 127.0.0.1. Cependant, si vous avez besoin de spécifier une IP différente, vous pouvez faire cela grâce à ce plugin d’aide :

📥   Télécharger (.zip):  WP Rocket | Varnish IP
Développeurs : Vous trouverez le code de ce plugin sur GitHub.

Modifier la méthode Purge pour BAN

Les requêtes de purge de WP Rocket suivent la configuration recommandée par Varnish : https://www.varnish-software.com/wiki/content/tutorials/wordpress/wp_step_by_step.html#handling-purge-requests

  • Si la requête de purge contient l'en-tête X-purge-method: regex, elle utilise BAN
  • Sinon, elle utilise une purge normale

Toutefois, si vous n'êtes pas en mesure de modifier la configuration de votre VCL, vous pouvez utiliser l’extrait de code ci-dessous pour changer la méthode de requête de purge en BAN à la place.

/**
 * Modify Varnish purge request from PURGE to BAN
 * 
 * @param $args array Array of arguments for the request.
 */
function mysite_wp_rocket_modify_varnish_purge_method ( $args ) {
	
	$args[ 'method' ] = 'BAN';
	
	return $args; 
}
add_filter( 'rocket_varnish_purge_request_args', 'mysite_wp_rocket_modify_varnish_purge_method' );

Modifier le scheme Purge pour du HTTPS

Le WP Rocket utilise le protocole HTTP pour envoyer la requête de purge à Varnish. Selon la configuration de Varnish, vous devrez peut-être passer au protocole HTTPS. Vous pouvez le faire à l'aide de l’extrait de code ci-dessous : 

/**
 * Change Varnish scheme from HTTP to HTTPS
 * 
 */

function wp_rocket_change_varnish_scheme ( $scheme ) {

	$scheme = 'https';	
	return $scheme;

}

add_filter( 'rocket_varnish_http_purge_scheme', 'mysite_wp_rocket_change_varnish_scheme' );

Utiliser Varnish avec un proxy

Si vous utilisez Varnish en conjonction avec un proxy comme Cloudflare, veuillez consulter ce guide.

Varnish Control Key

Malheureusement, WP Rocket n'est pas compatible avec Varnish Control Key. 

Une alternative, si vous devez utiliser cette clé, est d'utiliser le plugin Purge Varnish Cache . Veuillez noter que le cache de WP Rocket ne sera pas synchronisé avec le cache de Varnish, vous devrez donc vider le cache de Varnish après avoir fait des changements sur le site web.

Problèmes connus

Cela a-t-il répondu à votre question ? Merci pour votre retour :) Une erreur est survenue lors de l’envoi de votre retour. Veuillez réessayer plus tard.