Aprende a escalar tu sitio de WordPress en múltiples servidores. Este tutorial explica cómo configurar un sistema de archivos replicado con GlusterFS para almacenar y compartir tu sitio de WordPress entre varios servidores. Además, configuraremos HAProxy para balancear la carga de tráfico entre estos servidores de manera uniforme.
En un tutorial anterior, mostramos cómo escalar sitios de WordPress utilizando NFS. Sin embargo, este enfoque requiere un servidor dedicado para alojar la unidad compartida NFS, lo que introduce un único punto de fallo.
Con GlusterFS, no necesitas un servidor dedicado, ya que puede instalarse directamente en los servidores que comparten información. Esto elimina el riesgo de un único punto de fallo.
Como se mencionó, configuraremos un sistema de archivos replicado para alojar nuestro sitio de WordPress. Las modificaciones realizadas en el disco se replicarán casi instantáneamente entre los servidores. Si la red tiene una velocidad mínima de 1 GB, la latencia será imperceptible.
Infraestructura
Hostname | Sistema Operativo | Rol |
---|---|---|
lb1 | Debian | Balanceador de carga HAProxy |
wordpress1 | Debian | Nodo de WordPress y GlusterFS |
wordpress2 | Debian | Nodo de WordPress y GlusterFS |
wordpress3 | Debian | Nodo de WordPress y GlusterFS |
Implementación de HAProxy
HAProxy es un balanceador de carga rápido y sencillo de configurar.
- Conéctate al servidor HAProxy mediante SSH.
- Instala HAProxy:bashCopiarEditar
sudo apt install haproxy
- Abre el archivo de configuración de HAProxy en un editor de texto, como VIM.
- Configura HAProxy para balancear el tráfico entre los tres servidores de WordPress.
- Guarda los cambios y cierra el editor.
Instalación y configuración de GlusterFS
Para compartir la instalación de WordPress entre los servidores, se requiere instalar GlusterFS. Realiza las siguientes tareas en cada servidor:
- Instalar GlusterFS:
sudo apt install glusterfs-server
- Crear un directorio en cada servidor para el brick de GlusterFS:
sudo mkdir -p /srv/data/wordpress
Preparar los servicios en los hosts y la resolución de nombres
Entramos en los archivos de hosts y añadimos los 3 tres servidores en resolución directa. Realiza las siguientes tareas en cada servidor:
- Entrar en /etc/hosts:
nano /etc/hosts
- Añadir todos los hosts en cada servidor:
192.168.1.2 wordpress1
192.168.1.3 wordpress
2192.168.1.4 wordpress3
Arrancar y configuraro en el arranque
Para iniciar el servicio glusterd
en ambos servidores, ejecute:
sudo systemctl start glusterd.service
Para habilitar el servicio para que se inicie automáticamente al arranque, ejecute:
sudo systemctl enable glusterd.service
Verifique el estado del servicio con:
sudo systemctl status glusterd.service
Añadir peers de GlusterFS y crear el brick replicado
- Conéctate a uno de los servidores de WordPress.
- Añade los otros servidores como peers:
gluster peer probe wordpress2
gluster peer probe wordpress3
- Verifica el estado de los peers:
sudo gluster peer status
- Crea un volumen replicado llamado
wordpress-vol
utilizando los tres servidores:sudo gluster volume create wordpress-vol replica 3 transport tcp \
wordpress1:/srv/data/wordpress \
wordpress2:/srv/data/wordpress \
wordpress3:/srv/data/wordpress
Si el volumen de GlusterFS está en la misma partición que el sistema raíz de Linux, añadeforce
al comando:sudo gluster volume create wordpress-vol replica 3 transport tcp \
wordpress1:/srv/data/wordpress \
wordpress2:/srv/data/wordpress \
wordpress3:/srv/data/wordpress force
- Inicia el volumen
wordpress-vol
:gluster volume start wordpress-vol
- Verifica la configuración del volumen:
sudo gluster volume info
- Limita el acceso al volumen únicamente a los servidores de WordPress:
sudo gluster volume set wordpress-vol auth.allow wordpress1,wordpress2,wordpress3
Montar el brick replicado
Este paso debe realizarse en todos los servidores de WordPress. Montaremos el volumen replicado de GlusterFS como el directorio raíz del sitio web.
- Edita el archivo
fstab
:sudo vi /etc/fstab
- Añade la siguiente línea para hacer que el montaje sea persistente. Cambia
wordpress1
porwordpress2
owordpress3
según corresponda:wordpress1:/wordpress-vol /var/www/html glusterfs defaults,_netdev,log-level=WARNING,log-file=/var/log/gluster.log 0 0
- Guarda los cambios y cierra el editor.
- Monta el volumen:
sudo mount -a