Purgar cache en Varnish y WordPress

En Tutoriales y Guías, Webmasters por

Una de las tareas a las que me he tenido que enfrentar tras instalar Varnish Cache en un servidor es a purgar el cache correctamente cuando uso WordPress. Purgar cache en Varnish y WordPress de forma automática es algo que se puede conseguir a través de la instalación de algún plugin y a continuación veremos dos plugins que en mi opinión son las mejores alternativas para purgar el cache de Varnish.

Purgar cache en Varnish y WordPress

Como purgar cache en Varnish con WordPress

Lo primero será tener nuestro archivo VCL de Vanrnish correctamente configurado. Un ejemplo de archivo de configuración que permite la purga con los plugins comentados en este artículo es:

#IP/Hosts a los que se permite la peticion de purga
acl purge {
	"localhost";
	"127.0.0.1";
}

# Aceptar PURGE de W3 Total Cache y Varnish HTTP Purge
sub vcl_hit {
        if (req.request == "PURGE") {
                purge;
                error 200 "Purged.";
        }
}

sub vcl_miss {
        if (req.request == "PURGE") {
                purge;
                error 200 "Purged.";
        }
}

# Configuraciones recv
sub vcl_recv {

	#+++++  Purgado
	if (req.request == "PURGE") {
		if (!client.ip ~ purge) {
			error 405 "Not allowed.";
		}
		ban("req.url ~ ^" + req.url + "$ && req.http.host == " + req.http.host);
	}

#resto de configuraciones ...

Purgar cache de Varnish con W3 Total Cache

Este es un clásico entre los plugins de cache, es uno de los más completos y lleno de funcionalidades. W3 Total Cache nos ofrece la posibilidad de purgar el cache de Varnish, sólo tenemos que configurar la IP desde la que se permiten las peticiones de purga, que generalmente es la IP 127.0.0.1 tal y como se ve en la siguiente imagen.

Varnish w3 total cache

Personalmente cuando empleo Varnish desactivo toda la funcionalidad de W3 Total Cache, usando sólo este plugin para purgar el cache. Recordemos que el plugin nos permite configurar las políticas de purga, para decidir que elementos purgar cuando los artículos son creados, editados o se publican nuevos comentarios.

Varnish W3 Total Cache politicas de purgar

Ya el propio plugin nos aconseja mantener la configuración por defecto para que las peticiones de purga no afecten al rendimiento del servidor.

Varnish HTTP Purge

El plugin Varnish HTTP Purge es sencillo pero cumple con su cometido. Es un plugin que hay que instalar y después editar el archivo wp-config.php de nuestro WordPress para agregar la línea:
define('VHP_VARNISH_IP','127.0.0.1');

Con esta línea especificamos la IP desde donde se realizan las peticiones de purga. Por defecto la mayoría de las instalaciones de Varnish funcionarán con la IP 127.0.0.1, pero si nuestro archivo de configuración VCL especifica otra IP habrá que modificar dicha línea.

Al igual que W3 Total Cache, limpiará el cache de Varnish cuando se publica o edita un artículo o se publican nuevos comentarios, pero no nos permite ningún tipo de configuración a la hora de elegir que elementos purgar.

Entonces… ¿qué plugin de WordPress empleo para purgar el cache de Varnish?

Pues la respuesta es muy sencilla, si quieres tener un mayor control sobre las políticas de purga, entonces W3 Total Cache es mejor opción mientras que si lo que buscas es algo simple de instalar y configurar, Varnish HTTP Purge es tu mejor opción.

Actualmente uso Varnish HTTP Purge, porque es más sencillo y menos intrusivo en mis blogs WordPress, pero si quieres mayor control y opciones de configuración W3 Total Cache se ajustará mejor a tus necesidades.