Las aplicaciones web de gran tamaño o que se encuentran distribuidas en muchas ubicaciones, tienden a volverse algo díficil de manerar al contar con muchas ips y puertos para acceder a ellas, la configuración de los servidores web es esencial para garantizar la disponibilidad y rendimiento óptimo de las aplicaciones. En esta entrada les mostraré cómo configurar un Oracle HTTP Server (OHS) para trabajar con un clúster de WebLogic 12c o 14c, aprovechando las funcionalidades de DynamicServerList y WebLogicCluster.

¿Por qué utilizar un clúster de WebLogic?

Los clústeres de WebLogic permiten distribuir la carga de trabajo entre varios servidores, mejorando la escalabilidad y la disponibilidad de las aplicaciones. Al combinar esto con un OHS, podemos lograr una infraestructura robusta y altamente eficiente.

Para poder configurar un OHS con un cluster de Weblogic, previamente debemos tener configurado lo siguiente:

  1. Clúster de webLogic:
    • Un clúster en WebLogic que incluya todos los servidores que se requieren incluir en la configuración, en caso de no contar un cluster de weblogic pero sí con varias single instance, también se puede realizar la configuración, sin embargo, para centrarlizar la configuración, monitoreo de recursos y uso del nodemanager como administrador de las instancias, se recomienda el uso del cluster.
  2. Asignación de hostname únicos:
    • Debemos asegurarnos que cada servidor en el clúster tenga un hostname único.
  3. Asignación de puertos:
    • Debemos asegurarnos que cada nodo tenga un puerto de escucha abierto, como tendremos un cluster, la aplicación escuchar sobre el mismo puerto con diferentes hostname.

Configuración de DynamicServerList y WebLogicCluster en OHS:

DynamicServerList: Las propiedad DynamicServerList se utiliza para habilitar el control sobre el enrutamiento que tendrán las solicitudes que reciba el OHS hacía los un servidor Weblogic.

WebLogicCluster: Esta propiedad se utiliza para definir sobre cuales nodos de weblogic se balancearán las solicitudes.

WLIOTimeoutSecs: Tiempo de espera que dará el OHS para recibir una respuesta sobre cada nodo al que haga la petición, antes de pasar el siguiente nodo.

Entendiendo esto, vamos a configurar el OHS para balancear una solicitud entre varios nodo de Weblogic.

  1. Configuración de balanceo de cargas en el OHS:
    • Añade la siguiente directiva en el archivo de configuración de WebLogic, donde Location será la ruta por la que se accederá a la aplicación:
<IfModule weblogic_module>
  <Location path>
    SetHandler weblogic-handler
    WebLogicCluster host:port,host:port,...
    WLIOTimeoutSecs 20
    DynamicServerList On
  </Location>
</IfModule>

Ejemplo: para acceder a myapp1, podemos ver la configuración de la siguiente forma:

<IfModule weblogic_module>
  <Location /myapp1>
  SetHandler weblogic-handler
  WebLogicCluster pruebas1:8002,pruebas2:8003
  WLIOTimeoutSecs 20
  DynamicServerList On
  </Location>
</IfModule>

Al mismo tiempo, si tuvieramos varias aplicaciones, podemos configurar varios clusters:

<IfModule weblogic_module>

  <Location /myapp1>
      SetHandler weblogic-handler
      WebLogicCluster pruebas1:8001,pruebas2:8001
      WLIOTimeoutSecs 20
      DynamicServerList On
  </Location>

  <Location /myapp2>
      SetHandler weblogic-handler
      WebLogicCluster pruebas1:8002,pruebas2:8002
      WLIOTimeoutSecs 20
      DynamicServerList On
  </Location>

</IfModule>

Nota: Cuando configuramos el tiempo de espera de WLIOTimeoutSecs, estamos diciendole a la aplicación que si un nodo no responde en ese tiempo, pruebe con otro nodo, dependiendo la velocidad de respuesta, esto podría afectar los tiempos de respuesta de la aplicación, ya que habrá una validación extra sobre el nodo para verificar la conexión activa, por lo que es importante hacer pruebas de la conexión para garantizar bajos tiempos de respuesta.

2. Reinicia del OHS:

  • Guarda los cambios y reinicia el OHS para aplicar la configuración.

Pruebas de acceso:

  1. Verificamos la conexión al cluster:
    • Accede a través del OHS a la URL configurada para el clúster, por ejemplo, http://<IP_OHS>/myapp1.
    • Observa en los registros de OHS y WebLogic si los servidores en el clúster responden correctamente.

De esta manera podemos configurar el OHS como balanceador de cargas entre los nodos de weblogic, al implementar estas configuraciones, podemos aprovechar al máximo las capacidades de clúster de un OHS, facilitando el acceso a nuestros usuarios y añadiendo una capa extra de seguridad.

Este OHS posteriormente se podría configurar con SSL o bien en una DMZ para ayudar con la seguridad de la aplicación.

Deja una respuesta

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