Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

Configurar un Reverse Proxy de alta disponibilidad con NGINX y keepalive

Configurar un Reverse Proxy de alta disponibilidad con NGINX y keepalive

Tabla de contenidos

¿Que es un proxy inverso?

Un Proxy inverso es un intermediario entre una red pública y un conjunto de servidores privados; el cual se encarga de administrar las solicitudes de servicios por parte de uno o varios computadores externos. Estos funcionan manipulando los requerimientos HTTP que son enviados por varios computadores; en un proceso en cual se atienden las solicitudes y al mismo tiempo manipulan la presentación de estos servicios para evitar comprometer información crítica del grupo de servidores privados a donde se solicitan.

¿Que es Keepalived?
Keepalived nos ofrece una solución de alta disponibilidad mediante el uso del protocolo VRRP . Este protocolo, ideado para la L3 de la capa OSI, simula la presencia de un router «virtual» contra el que van dirigidas las peticiones, enrutando las peticiones sobre uno de los routers físicos que prestan servicio de manera totalmente transparente para el usuario. En caso de caida del router físico, se negocia el paso del servicio a otro router físico sin que se aprecie perdida de servicio.

Instalación del software:

Debian y derivados:

bash
apt-get install nginx keepalived

Red hat y derivados:

bash
yum install nginx keepalived

Procedemos a la configuración de keepalived

bash
Nodo Master:
cat /etc/keepalived/keepalived.conf
global_defs {
lvs_id nginx_DH

}
vrrp_script check_nginx {

script «killall -0 nginx»

interval 2

weight 2

}
vrrp_instance VI_01 {

state MASTER

interface ens192

virtual_router_id 51

priority 101
virtual_ipaddress {

#IP VIRTUAL

192.168.60.166
}

track_script {

check_nginx

}

}

Ahora debemos configurar el nodo  SLAVE (podemos añadir tantos como queramos)

bash
cat /etc/keepalived/keepalived.conf
global_defs {
lvs_id nginx_DH

}

ng

vrrp_script check_nginx {

script «killall -0 nginx»

interval 2

weight 2

}
vrrp_instance VI_01 {

state SLAVE

interface ens192

virtual_router_id 51

priority 101
virtual_ipaddress {

#IP VIRTUAL

192.168.60.166
}

track_script {

check_nginx

}

}

Configuramos en NGINX el upstream y un reverse proxy para realizar las pruebas (en ambos nodos):

nginx
/etc/nginx/sites-enabled/reverseproxy
upstream backend_servers {

least_conn;
server 192.168.1.164; #Nodo master

server 192.168.1.165; #Nodo slave

}
server {

listen 80;

server_name red-orbita.com;
location / {

proxy_pass https://sub.red-orbita.com/;
}

}
Iniciamos los servicios en los dos nodos y lo añadimos al inicio
service keepalived start

service nginx start
ystemctl enable  keepalived

systemctl enable nginx

Un saludo.

:wq!

Comentarios