Está en la página 1de 16

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA


MECÁNICA Y ELÉCTRICA

UNIDAD CULHUACAN

Asignatura: SISTEMAS DISTRIBUIDOS

“MEMORIA FINAL DEL PROYECTO”

Alumno: Pineda Cruz Brandon

Grupo: 8CM12

Boleta: 2020350529

Fecha: 15 de diciembre del 2023

1
Contenido

Objetivo .............................................................................................¡Error! Marcador no definido.


Resumen.........................................................................................................................................3
Conclusiones ................................................................................................................................. 15
Referencias ................................................................................................................................... 16

2
Objetivo

1. Crear un clúster que permita realizar un balance de cargas utilizando Nginx.

Resumen
Práctica 1

Los pasos para realizar replicación son los siguientes:

1. Instalar Mysql Server.


2. Configurar los archivos mysqld.conf con el número de servidor.
3. Crear un usuario, contraseña y host en cada maquina dentro de Mysql
Server.
4. Editar el estado de esclavo con la posición, archivo, host, usuario y
contraseña en cada maquina
5. Activar el estado de esclavo y maestro en cada máquina, verificando la
conexión correctamente.

Existe la opción de realizarlo en XAMPP directamente desde la consola de


phpMyadmin siguiendo los mismos pasos anteriores.

Se aprecia en esta máquina virtual la instalación de MySQL e inicio de sesión de


este. Para esto es necesario tener actualizadas ambas maquinas que contengan el
sistema operativo de Ubuntu.

3
En este apartado se muestra el estado del maestro donde ocupamos el archivo y
posición para cambiarlos en el estado de esclavo de la siguiente máquina virtual.

La siguiente captura muestra el estado del esclavo de la maquina con, usuario,


posición, archivo y host al cual se conecta.

4
La presente captura muestra el resto del estado del esclavo, donde en “Slave_IO”
y
“Slave_SQL” contienen la palabra “YES”, esto implica que es un estado de
multimaestro en ambas maquinas.

5
En este apartado solo se ingresa la base de datos a configurar o con la cual se
trabajará, replicada en ambas maquinas.

Como parte de la configuración es necesario editar el archivo mysqld.cnf y saber la


dirección ip de la máquina.

6
Práctica 2

En este apartado de la practica dos, es creación del CRUD, una vez obtenida la
replicación es necesario crear una interfaz para la BD por medio de php. La
presente captura muestra el registro de usuario, con el código correspondiente.

La siguiente captura muestra el inicio de sesión una vez obtenido un usuario.

7
La siguiente captura muestra la creación correcta del usuario para poder ingresar
al sistema.

8
Una vez ingresado las credenciales del usuario creado es posible acceder al
sistema y tener la opción de ver la Base de datos o cerrar la sesión.

A continuación, se muestra la parte de Agregar, modificar y eliminar producto,


además de la vista de un “Select” que muestra todos los productos existentes.

9
Una vez terminada esa parte es posible regresar y cerrar la sesión para evitar
problemas a futuro.

Práctica 3

La tercera practica consiste en balancear la carga entre los servidores. El equilibrio


de carga es una técnica o un mecanismo que distribuye las solicitudes entrantes al
grupo de servidores del backend. Se utiliza para aumentar la disponibilidad,
confiabilidad y escalabilidad de las aplicaciones. Puede utilizar la función de proxy
inverso de NGINX para equilibrar la carga del tráfico. Este procedimiento describe
cómo configurar NGINX como un equilibrador de carga HTTP que envía las
peticiones a diferentes servidores, basándose en cuál de ellos tiene el menor
número de conexiones activas. Si ambos servidores no están disponibles, el
procedimiento también define un tercer host por razones de fallback. Permite
agregar muchos servidores cuando aumenta el tráfico. Se muestra primeramente
la dirección ip de la máquina que balanceara la carga. Sin embargo, no tiene la
base de datos y tampoco contiene el paquete de programas XAMPP.

10
La siguiente imagen muestra la instalación de nginx, un servidor que nos permitirá
balancear las cargas y usar la misma dirección ip para redirigirnos a los servicios de
nuestra Base de datos.

11
Una vez instalado es necesario iniciarlo y habilitarlo. En la siguiente captura se
muestra que está activo y funcionando correctamente, el siguiente paso es
configurar el servidor al cual se conectará y la pagina que extraerá para iniciar.

También se denota la verificación de sintaxis con el comando nginx -t

El primer archivo es la conexión disponible, donde escuchará por el puerto 80 con


una localización hacia la conexión aplicación. En este caso, no usamos nombre de
servidor para cargar la aplicación.

12
La siguiente captura muestra la configuración con las direcciones IP de las
maquinas con las cuales hará el balanceo de cargas. A este se le nombro “app”.
ip_hash es para enviar solicitudes de una dirección de cliente al mismo servidor
basándose en un hash calculado a partir de los tres primeros octetos de la
dirección IPv4 o de la dirección IPv6 completa del cliente.

Además, se le asigno un peso de 4, donde cada 4 ingresos, cambia de servidor.

13
La siguiente captura es desde la maquina Windows donde se aprecia que con la
dirección mostrada en la primera captura de la practica 3 se puede acceder a
nuestro servicio alojado en las direcciones de la captura anterior.

14
En la siguiente captura se señala la dirección del balanceador, la dirección de la
maquina Windows y la dirección de la maquinas virtual donde se aloja el servicio,
a la cual denota la diferencia entre las distintas.

Conclusiones
La implementación del sistema tomó lugar en tres fases diferentes, la primera
consistió en la configuración de un modelo de maestro-esclavo utilizando MySQL,
lo que permitió la distribución eficiente de los datos entre diferentes nodos. Esta
configuración proporcionó una base sólida para la siguiente fase del proyecto. En
la segunda fase, se creó una aplicación CRUD utilizando XAMPP, que incluía
funcionalidades de inicio de sesión y registro de usuarios. La combinación de PHP y
MySQL fue una elección acertada, ya que permitió la gestión eficiente de la base
de datos y la creación de una interfaz amigable para los usuarios. Esta etapa fue
crucial para el desarrollo de un sistema robusto y completo. Finalmente, en la
última fase del proyecto, se implementó un balanceo de cargas de los servidores
utilizando Nginx. Esto garantizó una distribución equitativa de las solicitudes de los
usuarios entre los servidores disponibles, mejorando así el rendimiento y la
capacidad de respuesta del sistema. El uso de Nginx como servidor de balanceo de
carga fue una elección acertada debido a su eficiencia y escalabilidad.

La combinación de MySQL, XAMPP, PHP y Nginx proporcionaron una base


confiable y eficiente para la gestión de datos, la implementación de
funcionalidades y el rendimiento del sistema. Este proyecto ofrece una solución
integral para la distribución de cargas y la gestión de datos, sentando las bases
para futuras mejoras y expansiones.

15
Referencias
1. 2.5. Configuración de NGINX como equilibrador de carga HTTP Red Hat Enterprise Linux
8 | Red Hat Customer Portal. (n.d.). Red Hat Customer
Portal. https://access.redhat.com/documentation/es-
es/red_hat_enterprise_linux/8/html/deploying_different_types_of_servers/co
nfiguring-nginx-as-an-http-load-balancer_setting-up-and-configuring-nginx
2. Cevallos, F. (2022). Balanceador de Carga con NGINX. Fausto Cevallos.
https://faustocevallos.com/balanceador-de-carga-con-nginx/
3. Cómo configurar un servidor de balanceo de carga Nginx en Ubuntu 20.04.
(n.d.). Clouding.io. https://help.clouding.io/hc/es/articles/360019908839-
C%C3%B3mo-configurar-un-servidor-de-balanceo-de-carga-Nginx-en-
Ubuntu-20-04

16

También podría gustarte