[go: up one dir, main page]

0% encontró este documento útil (0 votos)
116 vistas18 páginas

SD Activdad Final

Este documento describe los pasos realizados en 3 prácticas para implementar un sistema distribuido con balanceo de carga. La primera práctica configuró la replicación maestro-esclavo de MySQL. La segunda implementó un CRUD con PHP y MySQL. La tercera configuró Nginx para balancear la carga entre los servidores. El documento concluye que la combinación de estas tecnologías proporciona una solución eficiente para la distribución y gestión de datos.

Cargado por

Daniel Vargas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
116 vistas18 páginas

SD Activdad Final

Este documento describe los pasos realizados en 3 prácticas para implementar un sistema distribuido con balanceo de carga. La primera práctica configuró la replicación maestro-esclavo de MySQL. La segunda implementó un CRUD con PHP y MySQL. La tercera configuró Nginx para balancear la carga entre los servidores. El documento concluye que la combinación de estas tecnologías proporciona una solución eficiente para la distribución y gestión de datos.

Cargado por

Daniel Vargas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 18

Instituto Politécnico Nacional

Escuela Superior de Ingeniería Mecánica y Eléctrica


Unidad Culhuacán
Ingeniería en computación

Sistemas
Distribuidos
Práctica final

Alumnos del grupo 8CM12


Alumna Ximena Toledo Rivera
Moisés Isaí Arroyo Rodríguez

Sábado, 3 de junio de 2023


SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

índice
Objetivo ............................................................................................................................. 2
Resumen ........................................................................................................................... 2
Conclusiones ................................................................................................................... 16
Referencias ..................................................................................................................... 16

1
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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.

2
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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.

3
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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


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

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.

4
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

En este apartado solo se ingresa la base de datos a configurar o con la cual se


trabajará, replicada en ambas maquinas.

5
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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


dirección ip de la máquina.

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.

6
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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

7
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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

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.

8
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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

12
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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.

13
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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.

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
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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.

15
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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.

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/

16
SISTEMAS DISTRIBUIDOS | PRÁCTICA FINAL |

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

17

También podría gustarte