Balanceo de Carga en WordPress

Habrá casos en los que tengamos una plataforma web montada sobre un sistema WordPress y nuestro servidor aloja videos o contenidos muy pesados para nuestros usuarios, posiblemente el server quede un poco sobrecargado y necesitemos repartir el peso o el balanceo de carga y el tráfico de las visitas entre dos o más servidores. Para ello os voy a realizar un tutorial básico de como se podría organizar todo esto sin complicarnos demasiado, es decir, crear un balanceo de carga en WordPress.

reparto-de-carga-wordpress

Una alternativa un tanto “chapuzilla” (en mi opinión), puede ser, contratar un servicio de video streaming externo, donde poder alojar nuestros videos (como por ejemplo amazons3), pero en mi opinión como administrador de sistemas que soy y defendiendo mi profesión…lo mejor y lo más profesional es alojar los videos en nuestros propios servidores. Aunque si la web es administrada por una persona sin conocimientos en SIstemas entiendo que recurra a Amazon, de este modo le esta informando indirectamente al usuario que no tiene presupuesto ni personal detrás de esta plataforma web.

Antes de nada una aclaración: Con este método que propongo tendremos dos o más servidores en los que esta corriendo WordPress (en un mismo nombre de dominio) bajo una única base de datos externa, en este método estamos repartiendo el peso de los videos, pero no las peticiones a la base de datos wp. Si teneis un cuello de botella en vuestro wordpress debido a las peticiones web y no es problema del contenido multimedia….esta solución no os servirá de mucho. (aquí sólo estamos repartiendo el peso del video)

BALANCEO DE CARGA EN SERVIDORES CON WORDPRESS

    • 1.Crear un Round Robin DNS
      El primer paso es hacer un Round Robin DNS de nuestro nombre de dominio, bajo el cual está funcionando nuestro WordPress. Para más información de como crear este sencillo paso en vuestros DNS os recomiendo leer este artículo: Reparto de carga con Round Robin

      round-robin-dns

    • 2.Clonar el contenido del directorio FTP /httpdocs en todos los servidores
      El segundo paso será copiar el contenido de nuestro directorio /httpdocs del primer servidor y clonarlo al resto de servidores donde queramos que funcione el WordPress.
    • 3.Crear una única base de datos
      Montaremos un base de datos externa donde queramos. Si ya estaba corriendo el WordPress en un servidor…lo más lógico es hacer que esa base de datos sea utilizada para el resto. Aunque también la podemos exportar y utilizar en otro server (a gusto de cada uno).
    • 4.Dar Acceso a la base de datos para peticiones externas
      En este servidor donde se aloje la bd de wordpress, será importante dar acceso a las peticiones mysql externas, para ello buscaremos el fichero my.conf que normalmente esta disponible en /etc/my.cnf, (si el servidor es linux), a continuación modificaremos la línea que pone “bind-address=127.0.0.1” y lo sustituiremos por “bind-address = 0.0.0.0“, después habrá que hacer un restart del mysql “service mysql restart”.
      Con esto lo que estamos haciendo es decirle al daemon mysqld que escuche peticiones externas.
      my-conf
      my-conf
    • 5.Modificar los archivos de configuración de WP
      Ahora vamos a la raiz de los directorios de ambos servidores donde está el wordpress y buscamos el fichero wp-config.php.
      Modificamos la línea donde indica el lugar de la base de datos WordPress:
      define(‘DB_HOST’, ‘localhost’);
      y lo sustituimos por:
      define(‘DB_HOST’, ‘laipdelserverconlabasededatos’);

Ahora tenemos dos servidores con WordPress bajo el mismo nombre de dominio, y las peticiones web se irán repartiendo equitativamente entre ambos.

Recuerda subir los ficheros multimedia siempre a ambos servidores por FTP.

CREANDO UN SISTEMA DE VIDEO STREAMING EN WORDPRESS

Estos son los pasos que yo realizo:

  • Subo los videos por ejemplo a-> www.tudominio.com/HDvideos en ambos servidores. Como se supone que ya tienes hecho el ROund Robin DNS…ese recurso unas veces se verá en un server…y otras en otro.
  • Después para verlos en streaming instalo en el servidor el WowzaMediaServer y creo una app llamada “vod” que apunta al directorio:
    /var/www/vhosts/eldominio/HDvideos
  • Para finalizar dentro ya del panel de control WordPress cuando creas una entrada…en el apartado del reproductor jwplayer apunto el nuevo video a esta dirección:
    http://www.tudominio.com/vod
    y como nombre del video: video1-clase-de-html.mp4

Mucha suerte y un saludo

Espero que este artículo os sirva de ayuda,
Un saludo,
Óscar / Devservice.es

Por Óscar Carrillo