Varnish para WordPress como Servicio

¿Tu WordPress va lento? ¿Te gustaría que volase? Pues esta es la idea que he estado planteando desde hace unos días… Hace cosa de un año que comencé a montar blogs con WordPress bajo Varnish. Al principio iba bien pero configurarlo y mantener las máquinas es algo complejo, a parte de que no todo el mundo puede permitirse montar y mantenerlo. Así que, tras muchas vueltas, pruebas, testeo de plugins y demás, he conseguido poder montar un sistema que, de forma sencilla, permita cachear y mantener un WordPress con Varnish.

El sistema es sencillo… sólo hay que subir 2 plugins: uno de ellos es para purgar (limpiar) la caché de Varnish cuando alguien publica algo, comenta, edita… así, cuando el blog cambie, se regenera la caché y los usuarios ven las cosas nuevas y actualizadas; el otro plugin es algo más genérico y hace referencia a la gestión de la IP, ya que al ser un web-proxy siempre devuelve la misma IP y eso genera problemas con el spam y similares.

Una vez configurado esto, lo bueno es que se puede probar antes de ponerlo en producción. Simplemente te cambias la IP de tu fichero de host y compruebas si todo funciona correctamente. Una vez probado, se cambian las DNS del dominio y ya está, todo listo.

Una cosa buena también que tiene este sistema es que, si por lo que sea, el Varnish empezase a hacer e tonto o quieres dejar de usar el servicio, vuelves a poner tus DNS como antes, quitas los plugins y ya está, todo vuelve a la normalidad.

¿Te gustaría probarlo? Pues si te interesa puedes escribirme (si me adelantas el dominio en que lo quieres probar, mejor que mejor) y te escribo con todos los pasos. Por ahora vamos a dar una semana de pruebas a aquellos que lo quieras testear en su sitio (ya sea por fichero de host o en producción) y a partir de ahí valdrá 120 euros/año u 80 euros/semestre.

¿Qué cosas buenas tiene usar este sistema? Primero que tu sitio estará cacheado y que soportará picos de tráfico sin problema; que cuando un robots de búsqueda te visite verá que la web va rápida y te indexará más rápido; por norma general el tráfico SEO aumenta a las 4 semanas de usar este sistema… además, sigues teniendo el control de todo en todo momento.

Y para muestra, un par de pruebas… Las he realizado desde el sitio Web Page test, primero apuntando a la IP del servidor directamente y luego apuntando a la del servidor con Varnish. El sitio desde el que se han hecho las pruebas es París con conexión de Cable.

Enlaces a los resultados de la Prueba Directa y a la Prueba con Varnish.

Como detalle, que no lo he podido capturar al 100%, el sistema hace 2 peticiones, la primera normal, luego refresca y usa la caché del navegador, y luego vuelve a repetir lo mismo. En el caso del acceso duirecto, WordPress ha de generar completamente la página, que tarda aproximadamente unos 2,5 segundos. Luego, en cualquier caso, el refresco es rápido, y tarda muy poco. Cuando estos e hace con Varnish delante, la primera ocasión tarda lo mismo, pero cuando vaciamos la caché del navegador como ya no se genera la página, tarda tan sólo 1,5 segundos.

DirectoVarnish
lectura 12.575s2.765s
caché 11.238s0.435s
lectura 22.172s1.416s
caché 21.245s0.315s

En general, como los usuarios navegarán por las versiones de “lectura 2” (la lectura 1 sólo se ejecutará cuando haya contenido nuevo o se vacíe la caché), los datos muestran que el blog carga entre un 60% y un 75% más rápido. Os dejo con algunos otros gráficos:

En estos datos se ven los tiempos de respuesta que han obtenido mejor valoración en las 2 pruebas realizadas…

Acceso directo:

Acceso por Varnish:

Aquí se muestra en una valoración simple los resultados que dan Google Page Speed y Yahoo! YSlow…

Acceso directo:

Acceso por Varnish:

Y finalmente un checklist de todas las peticiones que se han relalizado…

Acceso directo:

Acceso por Varnish:

En fin, creo que es bastante obvio que usar Varnish es una gran ventaja competitiva con respecto a los sitios que no lo tienen…

Otra prueba interesante es hacer un test de estrés. La idea es hacer crecer las peticiones simultáneas al sitio… el test lleva un 50% de visitas desde Dublín (IE) y un 50% de visitas desde Palo Alto (CA, US), hasta las 100 conexiones simultáneas. Las gráficas son bastante clarificadoras…

Enlaces a los resultados de la Prueba Directa y a la Prueba con Varnish. Creo que las gráficas hablan por sí solas…

Tiempos de carga por página:

Clientes1531517085100
Directo1.63s2.71s3.98s17.26s21.18s26.54s
Varnish1.27s1.14s1.20s1.28s1.48s1.27s

Acceso directo:

Acceso por Varnish:

¿Te gustaría probarlo? Pues si te interesa puedes escribirme (si me adelantas el dominio en que lo quieres probar, mejor que mejor) y te escribo con todos los pasos. Por ahora vamos a dar una semana de pruebas a aquellos que lo quieras testear en su sitio (ya sea por fichero de host o en producción) y a partir de ahí valdrá 120 euros/año u 80 euros/semestre.

11 comentarios en “Varnish para WordPress como Servicio”

  1. Hola Javier, antes de seguir decirte que el desmerito es de los ing. que no pasan del tercer párrafo (por los comentarios en twiter ;))

    ¿Mi consulta es si se puede utilizar Varnish para un ecommerce que, básicamente, funciona con Smarty?

    Saludos
    @fjosegs

  2. Si, se puede… La cuestion es que no hay muchos ecommerce que esten bien documentados para poder tener cache.

    Para magento, poe jemplo lo hay, siempre que no haya nada en el carrito. Aunque para los usuarios la mejora es pequeña, para los robots sí que es importante.

    Es probable que en breve tengamos el mismo servicio para magento y algun otro software.

  3. Depende de cómo lo hagas… en principio si configuras tu propio sistema de caducidad, sí, sobreescribe, si no le pone nada, utiliza el que viene del servidor.

  4. Con Prestashop no se puede integrar, aunque si quieres mejoras sería cuestión de usar un servidor de memcached que ya viene integrado directamente :)

  5. Olá Javier, poderia dizer quais são os plugins? Já estou com varnish instalado preciso de plugins para purgar e gerenciar melhor o sistema dele de purgue.

  6. Hola Javier,
    antes que nada decirte que soy un seguidor tuyo de hace tiempo, y felicitarte por el gran trabajo que haces en todos tus proyectos.

    Con Varnish he trabajado (mas bien “trasteado”), llegué a tenerle mucho cariño, a pesar de lo farragoso que me resultó al principio su configuración.

    Al final lo he parado por algunas cabronadas que me gastó, y ahora soy un auténtico fan de nginx.

    El problema es que utilizo nginx (al igual que utilizaba Varnish) como reverse proxy, con lo que tengo el problema que comentas en tu artículo, lo de que siempre devuelve la misma IP, cosa que me fastidia por temas de Spam y otros efectos secundarios.

    Todo este rollo que te he soltado, es para saber a qué plugin te has referido, que resuelve el problema de la IP.

Deja un comentario