Menu

Instalación de Balanceador de carga con nginx

En este post se explicará como instalar y configuración un balanceador de carga utilizando Nginx, esto puede ser útil para resolver alguno de los siguientes casos, cabe mencionar que estos no son las únicas aplicaciones:

  • Alta disponibilidad
  • Para no exponer el Backend al cliente
  • Presentar certificados de seguridad SSL al cliente.
  • Balanceo con servidores de backup

Para la instalación del Balanceador se utilizará Centos 7 como sistema operativo, utilizando los repositorios de Epel.

Una vez ya se tiene instalado el sistema operativo Centos 7 procederemos a realizar la configuración del repositorio de Epel en el sistema para esto debemos habilitar el repositorio Centos Extras el cual en Centos 7 ya lo tenemos activado por defecto por lo que solo debemos activar el repositorio de Epel con el siguiente comando.

# yum -y install epel-release

Una vez agregado el repositorio de Epel podemos proceder a instalar Nginx lo cual lo realizaremos con el siguiente comando.

yum install -y nginx

Con este comando hemos realizado la instalación de nginx, de ahora en adelante no centraremos en explicar la configuración del mismo para poder realizar un balanceo básico de  un sitio web; lo primero que vamos a ver la estructura de los documentos de configuración, estos archivos los encontramos en el directorio

/etc/nginx/

En este directorio encontramos algunos archivos que en los que nos centraremos en este post como por ejemplo el nginx.conf , en el cual encontramos la configuración basica de nginx  como por ejemplo el sitio por defecto que trae configurado nginx, el cual es recomendable comentar las líneas de configuración de ese sitio por default, esto lo hacemos colocando un # al inicio de cada una de las líneas descritas a continuación.

el archivo para editarlo podemos abrirlo con vi o el editor de preferencia.

sudo vi /etc/nginx/nginx.conf

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

Teniendo esto ya comentado procederemos a configurar nuestro balanceador para el sitio web como ejemplo utilizaremos el sitio de communityumg, relamente es muy sencillo solo debemos crear un archivo en el siguiente directorio /etc/nginx/conf.d/communityumg.com.conf. con el siguiente contenido:

upstream community {
ip_hash;
server 192.168.2.17 weight=15;
server 192.168.3.47 weight=60;
}

server {
server_name www.communityumg.com communityumg.com;
listen 80;
location / {
proxy_pass http://community;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}

Ahora vamos a explicar que son todos estos datos:

  • upstream Parametro en el que definimos los servidores que tenemos en backend
  • server en este apartado definimos la información de nuestro dominio.
  • listen sirve para definir el puerto que estará escuchando el nginx para este dominio.
  • server_name se define los nombres de dominio con los que va a trabajar
  • location con esta parte podemos definir varios en el mismo archivo, sirve para definir la ruta con la que validara la dirección, en nuestro caso será /
  • proxy_pass se coloca la información de nuestro upstream.

Ya configurado  debemos hacer un test de la configuración para luego poder iniciarlo lo cual lo realizamos ejecutando los siguientes comandos.

nginx -t -c /etc/nginx/nginx.conf
systemctl restart nginx
firewall-cmd –zone=public –add-port=http/tcp –permanent
firewall-cmd reload

Por último solo necesitamos agregar el servidor nginx a los niveles de arranque.

systemctl enable nginx

Etiquetas: , , , , ,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *