Categorías destacadas
programacion php    
Artículo
11
¡votar!

 BEA WebLogic: Guía de Administración


Instalar y Configurar el Plug-In para el Servidor Apache HTTP

. Introducció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>

Publicado por:
j calvo
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon