WordPress es sin lugar a dudas uno de los CMS más populares que podemos encontrar ahí afuera, es fácil de usar, gratuito y nos permite crear sitios web de todo tipo, desde simples blogs hasta tiendas online. Todo marchará de maravilla hasta que nuestro tráfico comience a crecer mucho, es allí cuando surgen los problemas, por eso te vamos a contar cómo podemos ir escalando WordPress de alto tráfico mientras nuestro blog crece.
A medida que tu sitio en WordPress comienza a crecer, el consumo de CPU y RAM por parte del mismo también crece, y lo hace demasiado quizá, al punto de que es necesario comenzar a realizar serias mejoras tanto a nivel del sitio en sí (programación/desarrollo) como del servidor.
[wp-svg-icons icon=»airplane» wrap=»i»] Escalando WordPress de Alto Tráfico – Opción 1
A nivel de servidores, una solución muy efectiva para los WordPress de alto tráfico es desplegar los servicios por medio varios servidores que se dedicarán a correr un servicio exclusivamente cada uno. En esta caso la configuración más básica recomendada es utilizar un server para el servidor web, otro para despachar PHP y finalmente otro para despachar las bases de datos.
Los servicios que pongamos a correr en cada uno también son claves para la performance, ya que el rendimiento que por ejemplo brinda un Apache + servidor de base de datos MySQL es inferior a la que se obtiene por medio de Nginx + PHP-FPM + MySQL/MariaDB. De hecho este último tipo de configuración es el que más recomendamos a nuestros clientes de alto tráfico WordPress.
Para que se hagan una idea, la estructura de servidores quedaría así:
- Server 1: Nginx
- Server 2: PHP-FPM
- Server 3: MariaDB/MySQL (la diferencia de rendimiento es mínima)
De esta forma tendremos el primer servidor exclusivamente para despachar todo el contenido estático del sitio + dinámico a través de PHP-FPM, el segundo lo pondremos a procesar todas las requests PHP y finalmente el tercero para las bases de datos.
Mediante este método estaremos distribuyendo las tareas en tres servidores en lugar de uno solo, lo cual dará lugar a una mejor performance a nivel de servidores y por lo tanto permitirá que haya más recursos disponibles para nuestro sitio web.
Adicionalmente también es posible colocar una instalación de Memcached en el mismo servidor que corremos MySQL, así podremos usar el servicio para cachear parte de nuestro sitio a nivel de consultas SQL pesadas y estáticas, mejorando así la performance de las operaciones SQL.
Pero eso no es todo, porque además se puede hacer uso de un CDN que se encargaría de distribuir más rápidamente el contenido estático de nuestro sitio, ayudando a alivianar más aún la carga en el server 1 y brindando una mejor performance. Las mejores opciones como siempre recomendamos son CloudFlare y MaxCDN.
Esta solución que mencionamos es perfecta para sitios WordPress con aproximadamente 100.000 visitas al día, de hecho varios de nuestros clientes la usan y los resultados son muy buenos.
[wp-svg-icons icon=»rocket» wrap=»i»] Escalando WordPress de Alto Tráfico – Opción 2
Aún así, es posible llevar las cosas un poco más al extremo si contamos con Blog WordPress que recibe un mayor número de visitas. Podemos optar por una configuración de hasta 4 servidores con la siguiente estructura:
- Server 1: Nginx dinámico
- Server 2: Nginx estático
- Server 3: PHP-FPM
- Server 4: MariaDB/MySQL
La diferencia principal entre esta configuración y la anterior es que Nginx despacha requests dinámicas a través de PHP-FPM desde un solo server, también destacamos que en este esquema de servidores no usaremos CDN, en su lugar colocaremos un nuevo server 2 que se encargará de distribuir todo el contenido estático de nuestro sitio, que en algunos casos hemos visto que resulta en una mejor ahorro de transferencia de datos si usas un CDN como MaxCDN.
Pero no vamos a detenernos ahora, porque para los sitios que tengan aún más visitas es posible configurar un número mayor de servidores de forma balanceada. Así es, podemos colocar varios servidores para distribuir el contenido estático y el dinámico mediante Nginx, otro para PHP-FPM e incluso otros para las bases de datos en modo cluster o replicación, de esa forma tendremos múltiples servidores encargándose de despachar nuestro sitio.
Por supuesto no se trata de una solución para nada barata, pero en algunos casos de sitios muy grandes es sin dudas el mejor tipo de configuración que vamos a encontrar.
Conclusión
Como hemos visto en nuestro post Escalando WordPress de Alto Tráfico, la mejor forma de despachar un sitio WordPress de alto tráfico es colocando los distintos servicios en varios nodos o servidores, de forma de no tener todo centralizado en un solo servidor que fácilmente podría verse sobrecargado al tener que procesar muchas peticiones de distinto tipo.
Incluso se pueden colocar varios servidores con una misma tarea, de forma que se mejorará aún más la performance y disminuirá el consumo de recursos en cada servidor, y como si eso fuera poco también es un excelente método para seguir online en caso de que un servidor quee offline o tenga algún problema.
¿Necesitas ayuda para optimizar tu WordPress? Contacta a nuestros expertos hoy mismo.
¿Buscas el máximo rendimiento para WordPress?
Migra hoy a tu Cloud Hosting o Servidor Dedicado para potenciar tu WP!