Vista General #
El objetivo de este artículo es explicar cómo ampliar las capacidades de los servidores de aplicaciones como Gato, Jboss or IIS haciéndolos altamente escalables en la web y configurándolos en alta disponibilidad para que sean tolerantes a los fallos, y cómo reforzar la ciberseguridad.
¿Qué es la alta disponibilidad? #
La alta disponibilidad es una cualidad de un sistema o componente que garantiza un alto nivel de rendimiento operativo, generalmente tiempo de actividad, durante un período de tiempo superior al normal.
Estableciendo Servidores de aplicaciones En alta disponibilidad, solucionamos los siguientes problemas:
- Un solo servidor pierde eficiencia al manejar una gran cantidad de solicitudes
- Los datos de la sesión se conservan en caso de falla del servidor
- Actualización de la aplicación sin interrumpir el servicio
¿Qué es la escala web? #
Al aplicar principios de escala web a los servidores de aplicaciones, todos los procesos comerciales de cualquier tamaño pueden crecer, optimizarse, automatizarse y escalarse de manera efectiva.
¿Qué es un servidor de aplicaciones? #
Un servidor de aplicaciones es un marco de software que proporciona la lógica empresarial para un programa de aplicación, es decir, administra recursos para crear aplicaciones web y un entorno de servidor para ejecutarlas.
Aunque este artículo puede servir como guía para cualquier servidor de aplicaciones, explicaremos algunos detalles sobre los más populares, que son:
- Los Gato software (o también conocido como Apache Tomcat o servidor Tomcat): una implementación de código abierto de las tecnologías Java Servlet, JavaServer Pages, Java Expression Language y Java WebSocket.
- JBoss or Vuelo salvaje: el servidor de aplicaciones desarrollado por Red Hat.
- IIS (Servicios de información de Internet): el servidor de aplicaciones desarrollado por Microsoft.
Configuración RELIANOID Balanceador de carga #
Con RELIANOID Balanceador de carga Podemos garantizar una alta disponibilidad y escalabilidad para los servidores de aplicaciones. Tenga en cuenta que, para seguir estas instrucciones, será necesario instalar una instancia de RELIANOID Load Balancer y varias instancias de servidores de aplicaciones. El entorno que vamos a describir es el siguiente:

Paso 0: replicación del servidor #
En nuestro ejemplo utilizamos dos servidores backend para cada aplicación, pero podemos incluir tantos como sea necesario. Es fundamental garantizar la coherencia, para que al conectarnos a un servidor de aplicaciones, siempre veamos lo mismo y no se pierdan todos los datos guardados en la aplicación. Para lograr esto, se debe configurar la replicación de sesiones dentro de los servidores. llamamos a esto paso 0 ya que esto debe realizarse en los servidores de aplicaciones.
Gato proporciona replicación de sesiones integrada en memoria: Administrador delta y Administrador de copias de seguridad. La principal diferencia entre estos dos replicadores es que Administrador delta Es más lento, pero más fiable en caso de fallo.
JBoss también proporciona una forma sencilla de habilitar la replicación de sesiones: marcando la aplicación como distribuible en el web.xml descriptor
Replicación de servicios para IIS se puede lograr utilizando DFSR (Replicación del sistema de archivos distribuido).
Paso 1: crear IP virtual #
En el momento que todos los DARWINs coticen incluyendo los deslizamientos RELIANOID Load Balancer está instalado, es necesario para crear una nueva IP virtual, desde el menú principal, seleccione Red->Interfaces virtuales->Acciones->Crear
Busque la interfaz física donde desea crear una IP virtual
Escriba el nombre y la dirección de su nueva IP virtual. Luego guárdelo haciendo clic en el botón "Crear".
Paso 2: crear una granja http #
Una granja o clúster es una colección de servidores informáticos que proporcionan funcionalidad de servidor y aumentan significativamente su capacidad. Aunque estamos usando los términos granja y grupo como sinónimos, existe una ligera diferencia entre ellos. Cuando se habla de un grupo, la redundancia está implícita, pero cuando se habla de un granja, puede que haya o no redundancia. En nuestro caso, como tendremos una configuración tolerante a fallos, podríamos hablar de granja o clúster como sinónimos.
De esta forma, al configurar una granja de servidores de aplicaciones, aumentaremos su rendimiento y su tolerancia a fallos, algo fundamental para una alta disponibilidad. Para lograr esto vaya a LSLB->Granjas->Crear
Seleccione un nombre y HTTP como perfil. Seleccionamos el perfil http porque es la mejor opción para servicios web, ya que podemos proporcionar opciones de cambio de contenido bajo la misma IP y puerto virtual.
Se mostrarán dos opciones más. Seleccione la IP virtual creada en el paso 1 y un puerto (en el ejemplo elegimos 80, ya que es el predeterminado para el protocolo HTTP) y haga clic en Guardar .
Paso 3: agregue los servicios #
La idea principal es servir diferentes aplicaciones desde diferentes servidores de aplicaciones desde la misma IP y puerto virtual. Entonces, una vez creada la granja, tenemos que editarla para poder agregar nuevos servicios. En nuestro ejemplo, configuraremos tres servicios. Uno para cada servidor de aplicaciones. Por favor haga clic en el botón editar granja.
Se pueden editar varios detalles de la granja, en el ejemplo vamos a configurar los valores predeterminados y los servicios.
En la captura de pantalla de arriba tenemos Añadido un servicio con nombre de servicio “app1”.
Como accederemos a los tres servicios a través de la misma granja, debemos distinguir entre estos servicios. Para hacer esto, podemos establecer un valor para patrón de URL. Este campo permite determinar un servicio web según la URL que el cliente solicita mediante un patrón de URL específico. En nuestro ejemplo, escribiremos ^/aplicación1.*, ^/aplicación2.* y ^/aplicación3.*. Haga clic en modificar para aplicar cambios
Tenga en cuenta que el backend debe encontrar la dirección http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (en nuestro ejemplo http://192.168.56.200/app1), para garantizar esto, el contexto debe estar configurado en su aplicación. En nuestros ejemplos, configuraremos el contexto. /aplicación1 por la Gato, /aplicación2 por la Jboss y /aplicación3 por la IIS. La función de Contexto representa una aplicación web que se ejecuta dentro de un host virtual particular. En el caso particular de IIS, los contextos se denominan aplicaciones.
En este ejemplo, tenemos dos servidores backend por aplicación. Seleccionamos IP, puerto (por defecto 8080 para Gato y JBoss, y 80 para IIS), tiempo de espera y peso y haga clic en guardar backend .
Queremos evitar la conmutación de servidores: si durante nuestra sesión saltamos de un servidor a otro, habrá pérdida de eficiencia, de datos e incluso de comunicación. Para evitar esto el Sesión de persistencia debe configurarse. Elegiremos mantener una sesión por ID de sesión, lo que significa que durante una sesión, nos conectaremos a un solo servidor.
En los parámetros globales del servicio ahora podemos cambiar el campo de sesión de persistencia a COOKIE: una determinada cookie
Seleccione JSESSIONID como identificador de sesión de persistencia para Tomcat y Jboss y SessionID para IIS, luego haga clic en Actualizar en la parte inferior de la página.
Ahora, bajo la misma granja tenemos que agregar 2 servicios más de la misma manera que app1 para app2 y app3, incluida la cookie de persistencia para JBoss (la opción predeterminada se llama JSESSIONID) e IIS (la cookie predeterminada para ASP.NET es ASPXAUTH), respectivamente, pero puede utilizar la cookie requerida por la aplicación. Cada servicio de la granja tiene sus propios backends que pueden compartirse entre granjas o servicios de granjas.
Tenga en cuenta que el orden de los servicios es importante para que coincida con el patrón de URL correcto.
Finalmente debemos aplicar los cambios reiniciando la granja.
¡Felicitaciones! Ha configurado sus servidores de aplicaciones en alta disponibilidad. Puedes acceder escribiendo http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (en nuestro ejemplo http://192.168.56.200/app1, http://192.168.56.200/app2 or http://192.168.56.200/app3).
Paso 4: comprobación avanzada #
Ahora configuraremos el guardián de la granja para realizar controles de salud avanzados en los backends, asegurando que estén en funcionamiento y el comportamiento correcto de la aplicación, no solo una verificación del puerto TCP. Por favor localice el guardián de la granja dentro de su Servicio que hemos configurado en el paso 3. Haga clic en Utilice FarmGuardian para comprobar los servidores backend, también puedes modificar el tiempo entre el check y finalmente, en el Comando para comprobar cuadro de texto, escriba el siguiente comando.
check_http -I HOST -w 10 -c 10 -t 10 -e 200 -p PUERTO -s ' '
Finalmente, haga clic en Actualizar en la parte inferior de la página.
El comando comprobar_http prueba las conexiones HTTP con el host especificado. En nuestro caso, estamos utilizando las siguientes opciones:
-PUEDO ALOJAR: El token HOST será reemplazado por la dirección IP del backend definida.
-w 10: tiempo de respuesta para generar un estado de advertencia: 10 segundos
-c 10: tiempo de respuesta al estado crítico: 10 segundos
-t 10: 10 segundos antes de que se agote el tiempo de conexión
-e 200: espera la cadena 200 en el estado de la respuesta del servidor
-p PUERTO: El PUERTO del token será reemplazado por el puerto de backend definido.
-s ' ': la cadena que se espera en el contenido es ' '
Entonces, lo que hará este comando es básicamente verificar que obtengamos una respuesta 200 OK y que el comando de respuesta contenga la cadena ' '. Seleccionamos esta cadena porque está al final de la respuesta, de esta manera podemos garantizar que obtenemos una respuesta completa de los backends.
Paso 5: alta seguridad #
Las comunicaciones seguras se pueden configurar fácilmente con RELIANOID Load Balancer, por lo que el siguiente paso es habilitar el oyente HTTPS: en el Editar parámetros globales de la granja pantalla, cambie el escucha de la granja de HTTP a HTTPS y el puerto virtual a 443.
Ahora, se puede acceder a los servicios escribiendo https://[Your_virtual_ip]/[yourappservice] en su navegador.
Las comunicaciones seguras ya están funcionando, pero podemos ir más allá configurando los parámetros HTTPS: dentro de los parámetros globales de la granja, localice el Configuraciones HTTPS sección. Podemos cambiar el Cifrados a Alta seguridad.
El campo de cifrados se utiliza para crear una lista de cifrados aceptados por las conexiones SSL con el fin de reforzar la conexión SSL. Seleccionando Alta seguridad, configuraremos por defecto los cifrados.
kEECDH+ECDSA+AES128:kEECDH+ECDSA+AES256:kEECDH+AES128:kEECDH+AES256:kEDH+AES128:kEDH+AES256:DES-CBC3-SHA:+SHA:!aNULL:!eNULL:!LOW:!kECDH:!DSS:!MD5:!EXP:!PSK:!SRP:!CAMELLIA:!SEED
Otra opción es la Certificados HTTPS disponibles: se mostrará una lista de certificados para seleccionar para la granja actual (solo para granjas HTTP, que es nuestro caso). Podemos seleccionar uno de la lista y pulsar en Agregar . Finalmente, haga clic en modificar y reinicie la granja para aplicar los cambios.
Para más información, por favor vea Granjas de perfiles HTTP.
HTTPS también se puede habilitar en sus servidores de aplicaciones, si este es el caso, debe habilitar la opción Servidores HTTPS.










