Soportando mucho tráfico en WordPress
El problema en muchos casos (lo hemos
visto más de una vez) viene cuando atraemos de alguna forma un gran
volumen de tráfico a una landing page o artículo de un blog WordPress sin tener nuestro WordPress preparado para soportar el tráfico.
Vamos a comenzar desde el principio,
cuando un visitante entra a una web o blog creada con WordPress (sin
cache) se tiene que procesar el código PHP en el servidor cada vez que
el visitante accede y esto lleva tiempo y se genera un consumo de
recursos elevado.
Para blogs o páginas de lanzamiento con poco tráfico, un simple hosting y un sistema de caché en forma de plugin como WP SuperCache
podría bastar para soportar el tráfico atraído, pero cuando mandamos
grandes volúmenes de tráfico como 1.000 o 2.000 visitantes por segundo
es necesario implementar otro tipo de soluciones a nivel servidor que
nos ayudaran a mantener unos tiempos de carga muy bajos y además
aguantar la carga sin caídas.
En este artículo vamos a describir una serie de soluciones que nos ayudaran a aguantar picos de tráfico en un blog WordPress, en la mayoría de los casos estas soluciones son óptimas para servidores VPS y servidores dedicados, no para hosting compartido.
Nginx Cache
Personalmente, Nginx es
mi servidor web favorito (como alternativa a Apache); pero Nginx
también puede funcionar de otra forma llamada “proxy inverso”.
Cuando Nginx funciona como proxy inverso
puede funcionar como caché, guardando una copia estática de los sitios
web y pudiendo servir esta copia mucho más rápido a los visitantes
cuando solicitan el acceso a una web.
El consumo de recursos de Nginx al
servir páginas estáticas cacheadas puede ser un 1% del consumo de Apache
para servir la misma página sin cachear, eso sin contar la notable
mejoría en la velocidad de carga para el visitante.
Nginx es el servidor web recomendado para un servidor VPS dado su bajo consumo de recursos.
Flexicache + Memcached
Se trata de una combinación de plugin para WordPress con un sistema de caché de objetos en memoria RAM a nivel servidor.
Flexicache es uno de los mejores plugins
de caché que me he encontrado para WordPress, permite bajar de forma
notable el consumo de recursos de WordPress; pero lo mejor de Flexicache es que tiene soporte nativo para guardar las paginas estáticas cacheadas en la memoria RAM utilizando Memcached, algo que pocos Plugins de caché para WordPress tienen.
Combinando Flexicache y Memcached conseguimos un rendimiento muy parecido al que conseguiríamos con Nginx Cache en cuanto a velocidad de carga, aunque el consumo de recursos es entre un 10% y un 20% más alto con Flexicache y Memcached.
Varnish Cache
Varnish Cache es lo que
se viene denominando como un acelerador de aplicaciones web, aunque
realmente se trata de un sistema de caché que se coloca como un proxy
HTTP inverso para un servidor web como Apache.
Varnish es una de las
mejores soluciones a la hora de soportar grandes cantidades de tráfico,
ya que es capaz de alcanzar altas tasas de peticiones por segundo sin
consumir demasiados recursos en el servidor.
El funcionamiento de Varnish como caché es muy simple: lo único que hace Varnish Cache
es guardar copias estáticas del sitio web en la memoria del servidor,
permitiendo servir las páginas sin consumir recursos en procesar PHP y
con un mínimo retardo al servir peticiones a los visitantes.
Varnish Cache es la
solución más efectiva para soportar grandes volúmenes de tráfico
entrante, pero también es la solución más difícil de implementar y
configurar.