BEA WebLogic: Guía de Administración

El Plug-in para el Servidor Apache HTTP, permite que las peticiones sean pasadas (proxy) desde un Servidor Apache hacia un Servidor WebLogic. El Plug-in ampl�a una Instalaci�n de Apache permitiendo que WebLogic manejar aquellas peticiones que requieren las funcionalidades din�micas del Servidor WebLogic.

El plug-in se ha pensado para un entorno en el que un Servidor Apache sirve p�ginas est�ticas, y otra parte del �rbol de documentos (p�ginas din�micas mejor generadas por Servlets HTTP o JavaServer Pages) se delega en el Servidor WebLogic, que podr�a estar operando en un proceso diferente, posiblemente en un host diferente. En el usuario final -- el navegador -- las peticiones HTTP delegadas al Servidor WebLogic parecer�n que vienen de la misma fuente.

El tunneling HTTP tambi�n puede operar a trav�s del plug.in, proporcionando acceso a los servicios WebLogic a los clientes que no sean navegadores.

El Apache HTTP Server Plug-In opera como un m�dulo de Apache en un Servidor Apache. El servidor Apache carga los m�dulos en la arrancada, y luego ciertas peticiones HTTP se delegan hac�a ellos. Los m�dulos Apache son similares a los Servlets HTTP, excepto que un m�dulo Apache se escribe en c�digo nativo de la plataforma.

.�Mantener Vivas las Conexiones Apache

El Plug-In Apache HTTP Server crea un socket por cada petici�n y cierra el socket despu�s de haber le�do la respuesta. Como el Servidor Apache es multi-procesador, el almacen de conexiones y las conexiones vivas entre el Servidor WebLogic y el Plug-in del Servidor Apache no pueden soportarse.

.�Peticiones Proxy

El plug-in pasa (hace de proxy) peticiones al Servidor WebLogic bas�ndose en una configuraci�n que nosotros espec�ficamos. Podemos pasar peticiones bas�ndonos en la URL de la peticiones (o en una porci�n de la URL). Esto se llama proxy por path. Tambi�n podemos pasar peticones bas�ndonos en el tipo MIME del fichero solicitado. Tambi�n podemos usar una combinaci�n de �mbos m�todos. Si una petici�n cumple los dos criterios, se pasa por path. Tambi�n podemos especificar par�metros adicionales para aquellos tipos de peticiones que definen un comportamiento adicional del plug-in.

.�Plataformas Soportadas

El Plug-In Apache HTTP Server soporta las plataformas Linux, Solaris y HPUX11. Para m�s informaci�n sobre el soporte de las versiones espec�ficas de Apache puedes ver la p�gina http://e-docs.bea.com/wls/platforms/index.html#apach.

.�Instalar el Plug-in para Apache Web Server

Instalamos el Plun-In para Apache HTTP Server como un m�dulo m�s de Apache en nuestra instalaci�n. Para instalar el Plun-in:

  1. Localizamos el fichero de objeto compartido para nuestra plataforma.

    El Plug-in de apache se distribuye como un objeto compartido (.so) para usarlo en las plataformas Solaris, Linux, y HPUX11. El fichero de objeto compartido se distribuye en versiones separadas, dependiendo de la plataforma, de si se va usar SSL entre el cliente y Apache y la longitud de la encriptaci�n para SSL (normal o 128 bits).

    Los ficheros de objetos compartidos se localizan en los siguientes directorios de nuestra instalaci�n WebLogic Server:

    • Solaris
      lib/solaris
    • Linux
      lib/linux
    • HPUX11
      lib/hpux11

    Elegimos el objeto compartido apropiado seg�n la siguiente tabla:

    Versi�n de Apache Longitud de
    Encriptaci�n
    Normal
    Encriptaci�n
    de 128 bits
    Apache, Version 1.x mod_wl.so mod_wl128.so
    Apache w/SSL/EAPI
    Version 1.x
    (Stronghold, modssl etc).
    mod_wl_ssl.so mod_wl128_ssl.so
    Apache + Raven Version 1.x
    Requerido porque Raven aplica patches frontpage que hacen el plug-in incompatible con el objeto compartido est�ndard.
    mod_wl_ssl_raven.so mod_wl128_ssl_raven.so
  2. Activar el Objeto compartido.

    El Plug-in de Apache HTTP Server se instalar� como un Apache Dynamic Shared Object (DSO). El DSO soportado en Apache est� basado en un m�dulo llamado mod_so.c que debe est�r activado antes de cargar mod_wl.so. Si instalamos Apache usando el Script suministrado, mod_so.c deber�a estar activado. Para verificar que lo est�, ejecutamos el siguiente comando:

    APACHE_HOME/bin/httpd -l
    

    (donde APACHE_HOME es el directorio que contiene la instalaci�n de nuestro Apache HTTP Server.)

    Este comando lista todas los m�dulos activados. Si mod_so.c no est� listado, debemos reconstruir nuestro Apache HTTP Server desde el c�digo fuente, asegur�ndonos de que est�n configuradas las siguientes opciones:

    ...
    --enable-module=so
    --enable-rule=SHARED_CORE
    ...
    
  3. Instalamos el Plug-In de Apache HTTP Server con un programa de soporte llamado apxs (APache eXtenSion) que construye m�dulos basados en DSO fuera del �rbol fuente de Apache, y a�adimos la siguiente l�nea al fichero httpd.conf:
    AddModule mod_so.c
    

    En nuestra instalaci�n de WebLogic Server, usamos un shell de l�nea de comandos para navegar al directorio que contiene el objeto compartido de nuestra plataforma y activamos el weblogic_module lanzando este comando (observa que debemos tener Perl instalado para ejecutar este script):

    perl APACHE_HOME/bin/apxs �i �a �n weblogic mod_wl.so
    

    Este comando copia el fichero mod_wl.so al directorio APACHE_HOME/libexec. Tambi�n a�ade dos l�neas de instrucciones para weblogic_module en el fichero httpd.conf y activa el m�dulo. Debemos asegurarnos de que se han a�adido estas dos l�neas al fichero APACHE_HOME/conf/httpd.conf:

    LoadModule weblogic_module
    AddModule mod_weblogic.c
    
  4. Verificamos la s�ntaxis del fichero APACHE_HOME/conf/httpd.conf con el siguiente comando:
    APACHE_HOME/bin/apachect1 configtest
    
    La salida de este comando indica cualquier error que haya en nuestro fichero httpd.conf.
  5. Configuramos cualquier par�metro adicional en el fichero de configuraci�n de Apache httpd.conf como se describe en la secci�n Configurar el Plug-In para Apache HTTP Server. El fichero httpd.conf nos permite personalizar el comportamiento del Plug-In Apache HTTP Server.
  6. Arrancamos Weblogic Server.
  7. Arrancamos (o reiniciamos si hemos cambiado la configuraci�n) el Servidor Apache HTTP.
  8. Probamos el Plug-in de Apache abirendo un navegador y seleccionando la URL hacia el servidor Apache + �/weblogic/�, que nos deber�a mostrar la p�gina HTML por defecto del servidor WebLogic, el fichero de bienvenida, o el servlet por defecto, seg�n se haya definido en la Aplicaci�n Web sobre el Servidor WebLogic. Por ejemplo:
    http://myApacheserver.com/weblogic/
    

.�Configurar el Plug-In para Apache HTTP Server

Despu�s de instalar el plug-in, editamos el fichero httpd.conf para configurarlo. Editar el fichero httpd.conf informa al servidor Apache que deber�a cargar la librer�a nativa del Plug-in como un m�dulo Apache y tambi�n describe qu� peticiones deber�a manejar el m�dulo.

.�Editar el Fichero httpd.conf

Para editar el fichero httpd.conf para configurar el Plug-In Apache HTTP Server:

  1. Abrimos el fichero httpd.conf. Este fichero est� localizado en APACHE_HOME/conf/httpd.conf (donde APACHE_HOME es el directorio ra�z de nuestra instalaci�n de Apache).
  2. Verificamos que se han a�adido estas dos l�neas despu�s de ejecutar la utilidad apxs:
    LoadModule weblogic_module libexec/mod_wl.so
    AddModule mod_weblogic.c
    
  3. A�adimos un bloque IfModule que defina uno de:
    • Para un Servidor WebLogic sin clusters:
      Los par�metros WebLogicHost y WebLogicPort.
    • Para un cluster de Servidores WebLogic:
      El par�metro WebLogicCluster.
    Por ejemplo:
    
    <IfModule mod_weblogic.c>
        WebLogicHost myweblogic.server.com
        WebLogicPort 7001
    </IfModule>
    
    
  4. Si queremos pasar (proxy) peticiones por su timpo MIME, tambi�n a�adimos una l�nea MatchExpression al bloque IfModule. (Tambi�n podemos pasar peticiones por ptah. El paso por path tiene precedencia sobre el paso por tipo MIME, si s�lo queremos pasar peticiones por path, saltamos al pr�ximo paso).

    Por ejemplo, el siguiente bloque IfModule es para un servidor WebLogic sin clusters, especifica que todos los ficheros con el tipo MIME .jsp sean pasados:

    
    <IfModule mod_weblogic.c>
        WebLogicHost myweblogic.server.com
        WebLogicPort 7001
        MatchExpression *.jsp
    </IfModule>
    
    

    Tambi�n podemos usar m�ltiples MatchExpressions, por ejemplo:

    
    <IfModule mod_weblogic.c>
        WebLogicHost myweblogic.server.com
        WebLogicPort 7001
        MatchExpression *.jsp
        MatchExpression *.xyz
    </IfModule>
    
    

    Si estamos pasando peticiones por tipo MIME a un cluster de Servidores WebLogic, usamos el par�metro WebLogicCluster en lugar de los par�metros WebLogicHost y WebLogicPort. Por ejemplo:

    
    <IfModule mod_weblogic.c>
        WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
        MatchExpression *.jsp
        MatchExpression *.xyz
    </IfModule>
    
    
  5. Si queremos pasar peticiones por path, usamos el bloque Location y la sentencia SetHandler. SetHandler especifica el manejador para el modulo Plug-in de Apache HTTP Server. Por ejemplo, el siguiente bloque Location pasa todas las peticiones que contengan /weblogic en la URL:
    
    <Location /weblogic>
        SetHandler weblogic-handler
    </Location>
    
    
  6. Definimos cualquier par�metro adicional para el Plug-In de Apache HTTP Server.

    El Plug-In de Apache HTTP Server reconoce los par�metros listados en Par�metros Generales para Plug-Ins de Servidores Web. Para modificar el comportamiento de nuestro Plug-In de Apache HTTP Server, definimos estos par�metros:

    • En un bloque Location, para par�metros que se aplican al paso (proxy) por path, o
    • en un bloque IfModule, para par�metros que se aplican al paso (proxy) por tipo MIME.

.�Notas sobre la Edici�n del Fichero httpd.conf

  • Como una alternativa al procedimiento descrito en Editar el Fichero httpd.conf, podemos definir los par�metros en un fichero separado llamado weblogic.conf que es incluido en el bloque IfModule. Usar este fichero incluido podr�a ayudarnos a modularizar la configuraci�n. Por ejemplo:
    
    <IfModule mod_weblogic.c>
        # Config file for WebLogic Server that defines the parameters
        Include conf/weblogic.conf
    </IfModule>
    
    
    Nota:
    Definir los par�metros en un fichero incluido no est� soportado cuando se usa SSL entre el Plug-In de Apache HTTP Server y el Servidor WebLogic.
  • Cada par�metro debe introducirse en una nueva l�nea. No debemos poner un �=� entre el par�metro y su valor. Por ejemplo:
    PARAM_1 value1
    PARAM_2 value2
    PARAM_3 value3
    
  • Si una petici�n corresponde tanto con un tipo MIME especificado en una MatchExpression en un bloque IfModule como con un path especificado en un bloque Location, tiene preferencia el comportamiento especificado en lo bloque Location.
  • Si definimos el par�metro CookieName, debemos hacerlo en un bloque IfModule.

.�Usar SSL con el Plug-In de Apache

Podemos usar el protocolo Secure Sockets Layer (SSL) para proteger la conexi�n entre el Plug-In de Apache HTTP Server y el Servidor WebLogic. El protocolo SSL proporciona confidencialidad e integridad de los datos pasados entre el Plug-In de Apache HTTP Server y el Servidor WebLogic. Adem�s, el protocolo SSL permite al plug-in autenticarse a si mismo en el Servidor WebLogic para asegurar que la informaci�n es pasada a un principal seguro.

El Plug-In de Apache HTTP Server no usa el protocolo de transporte (http o https) especificado en la petici�n HTTP (normalmente por el navegador) para determinar si se usa o no el protocolo SSL para proteger los datos de la conexi�n entre el Plug-In de Apache HTTP Server y el Servidor WebLogic.

.�Configurar SSL entre el Plug-In de Apache HTTP Server y el Servidor WebLogic

Para usar el protocolo SSL entre el Plug-In de Apache HTTP Server y el Servidor WebLogic:

  1. Configuramos el Servidor WebLogic para SSL. (Ver Configurar el Protocolo SSL).
  2. Configuramos el puerto de escucha SSL del Servidor WebLogic. (Ver Configurar el Puerto de Escucha).
  3. Seleccionamos el par�metro WebLogicPort en el fichero httpd.conf al puerto de escucha configurado en el paso 2.
  4. Seleccionamos el par�metro SecureProxy en el fichero httpd.conf a ON.
  5. Seleccionamos cualquier par�metro adicional en el fichero httpd.conf que defina informaci�n sobre la conexi�n SSL. Puedes ver una lista completa de par�metros en Par�metros SSL para Plug-Ins de Servidores Web.

.�Problemas de Configuraci�n SSL-Apache

Cuando configuramos el Plug-In Apache para usar SSL hay dos problemas conocidos:

  • El par�metro PathTrim debe configurarse dentro de la etiqueta <Location>. La siguiente configuraci�n es incorrecta:
    
    <Location /weblogic>
        SetHandler weblogic-handler
    </Location>
    
    <IfModule mod_weblogic.c>
        WebLogicHost localhost
        WebLogicPort 7001
        PathTrim /weblogic
    </IfModule>
    
    

    Esta es la configuraci�n correcta:

    
    <Location /weblogic>
        SetHandler weblogic-handler
        PathTrim /weblogic
    </Location>
    
    
  • La directiva Include no funciona con Apache SSL. Debemos configurar todos los par�metros directamente en el fichero httpd.conf. No debemos usar la siguiente configuraci�n cuando usemos SSL:
    
    <IfModule mod_weblogic.c>
        MatchExpression *.jsp
        Include weblogic.conf
    </IfModule>
    
    

.�Errores de Conexi�n y Control de Fallos en Clustering

Cuando el Plug-In de Apache HTTP Server intenta conectar con el Servidor WebLogic, usa varios par�metros de configuraci�n para determinar cu�nto tiempo esperar las conexiones con el host del Servidor WebLogic y, despu�s de establecida la conexi�n, cu�nto esperar por una respuesta. Si el plug-in no puede conectar o no recibe una respuesta, intentar� conectar y env�ar la petici�n a otro Servidor WebLogic del Cluster. Si la conexi�n falla o no hay respuesta de ning�n servidor WebLogic del cluster, se env�a un mensaje de error.

.�Fallos de Conexi�n

El fallo de un host al responder a una petici�n de conexi�n podr�a indicar posibles problemas con la m�quina host, problemas de red, u otros varios fallos de servidor.

El fallo de un Servidor WebLogic al responder, podr�a indicar que WebLogic no se est� ejecutando que no est� disponible, un cuelgue de servidor, un problema de base de datos, u otro fallo de aplicaci�n.

.�Control de Fallos con un S�lo Servidor (sin cluster)

Si est�mos ejecutando un s�lo Servidor WebLogic se aplica la misma l�gica descrita aqu�, excepto en que el plug-in s�lo intenta conectar con el servidor definido en el par�metro WebLogicHost. Si el intento falla, se devuelve un mensaje de error HTTP 503. El plug-in contin�a intentando conectar con el Servidor WebLogic hasta que se excede el tiempo ConnectTimeoutSecs.

.�La Lista de Servidores Din�mica

Cuando especificamos una lista de servidores WebLogic en el par�metro WebLogicCluster, el plug-in usa esa lista como punto de entrada para el balance de carga entre los miembros del cluster. Despu�s de que se haya enrutado la primera petici�n a uno de esos servidores, se devuelve una lista din�mica que contiene una lista actualizada con los servidores que hay en el cluster. La lista actualizada a�ade cualquier nuevo servidor en el cluster y borra cualquier otro que haya dejado de formar parte de �l, o que haya fallado al responder peticiones. Esta lista se actualiza autom�ticamene con la respuesta HTTP cuando ocurre un cambio en el cluster.

.�Control de Fallos, Cookies y Sesiones HTTP

Cuando una petici�n contiene una informaci�n de sesi�n almacenada en un cookie, en los datos POST, o codificando la URL, la ID de la sesi�n contiene una referencia al servidor espec�fico en que se estableci� originalmente la sesi�n (llamado servidor primario) y una referencia a un servidor adicional donde se ha replicado la sesi�n original (llamado servidor secundario). Una petici�n que contiene una cookie intenta conectar con el servidor primario, si el intento falla, la petici�n se enruta hacia el servidor secundario. Si ambos servidores fallan, la sesi�n se pierde y el plug-in intenta hacer una nueva conexi�n con otro servidor de la lista din�mica del cluster. Puedes ver m�s informaci�n en la siguiente figura:

.�Plantilla del Fichero http.conf

Esta secci�n contiene un ejemplo del fichero http.conf. Podemos usar este ejemplo como una plantilla que podemos modificar para adaptarla a nuestro entorno y servidor. Las l�neas que empiezan con # son comentarios. Observa que el Servidor Apache HTTP no es sensible a las may�sculas, y que las l�neas LoadModule y AddModule las a�ade autom�ticamente la utilidad apxs:


####################################################
APACHE-HOME/conf/httpd.conf file
####################################################
LoadModule weblogic_module libexec/mod_wl.so
AddModule mod_weblogic.c

<Location /weblogic>
    SetHandler weblogic-handler
    PathTrim /weblogic
    ErrorPage http://myerrorpage1.mydomain.com
</Location>

<Location /servletimages>
    SetHandler weblogic-handler
    PathTrim /something
    ErrorPage http://myerrorpage1.mydomain.com
</Location>

<IfModule mod_weblogic.c>
    MatchExpression *.jsp
    WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
    ErrorPage http://myerrorpage.mydomain.com
</IfModule>

.�Ejemplos de Ficheros de Configuraci�n

En lugar de definir par�metros en el bloque Location de nuestro fichero httpd.conf, si lo preferimos, podemos usar un fichero weblogic.conf que carga IfModule en el fichero httpd.conf. Los siguientes ejemplos se podr�an usar como plantillas que podemos modificar para adaptarlas a nuestro entorno y servidor. Las l�neas que empiezan con # son comentarios

.�Ejemplo Usando Clusters WebLogic


# These parameters are common for all URLs which are
# directed to the current module. If you want to override
# these parameters for each URL, you can set them again in
# the <Location> or <Files> blocks. (Except WebLogicHost,
# WebLogicPort, WebLogicCluster, and CookieName.)

<IfModule mod_weblogic.c>
    WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
    ErrorPage http://myerrorpage.mydomain.com
    MatchExpression *.jsp
</IfModule>
#################################################### 

.�Ejemplo Usando Varios Clusters


# These parameters are common for all URLs which are
# directed to the current module. If you want to override
# these parameters for each URL, you can set them again in
# the <Location> or <Files> blocks (Except WebLogicHost,
# WebLogicPort, WebLogicCluster, and CookieName.)

<IfModule mod_weblogic.c>
    MatchExpression *.jsp WebLogicHost=myHost|WebLogicPort=7001|Debug=ON
    MatchExpression *.html WebLogicCluster=myHost1:7282,myHost2:7283|ErrorPage=
    http://www.xyz.com/error.html
</IfModule>

.�Ejemplo Sin Clusters


# These parameters are common for all URLs which are
# directed to the current module. If you want to override
# these parameters for each URL, you can set them again in
# the <Location> or <Files> blocks (Except WebLogicHost,
# WebLogicPort, WebLogicCluster, and CookieName.)

<IfModule mod_weblogic.c>
    WebLogicHost myweblogic.server.com
    WebLogicPort 7001
    MatchExpression *.jsp
</IfModule>

.�Ejemplo de Configuraci�n de Hosting Virtual basado en IP


NameVirtualHost 172.17.8.1

<VirtualHost goldengate.domain1.com>
    WebLogicCluster tehama1:4736,tehama2:4736,tehama:4736
    PathTrim /x1
    ConnectTimeoutSecs 30
</VirtualHost>

<VirtualHost goldengate.domain2.com>
    WeblogicCluster green1:4736,green2:4736,green3:4736
    PathTrim /y1
    ConnectTimeoutSecs 20
</VirtualHost>

.�Ejemplo de Configuraci�n de Hosting Virtual Basado en Nombre


<VirtualHost 162.99.55.208>
    ServerName myserver.mydomain.com
        <Location / >
            SetHandler weblogic-handler
            WebLogicCluster 162.99.55.71:7001,162.99.55.72:7001
            Idempotent ON
            Debug ON
            DebugConfigInfo ON
        </Location>
</VirtualHost>

<VirtualHost 162.99.55.208>
    ServerName myserver.mydomain.com
        <Location / >
            SetHandler weblogic-handler
            WebLogicHost russell
            WebLogicPort 7001
            Debug ON
            DebugConfigInfo ON
        </Location>
</VirtualHost>

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR