Configuración de un equilibrador de carga para soportar el failover

Si tiene previsto instalar y configurar más de una instancia de Essbase para soportar el failover, necesita un equilibrador de carga de front-end.

Una opción a tener en cuenta para un equilibrador de carga es Oracle HTTP Server, ya que está integrado con WebLogic y proporciona servicios web para Oracle Fusion Middleware.

Otra opción es el servidor HTTPD de Apache.

Note:

Si se conecta a través de Smart View, mediante la URL /aps/SmartView, debe cambiar la URL. Consulte Redirección a la nueva URL de conexión de Essbase Smart View. También puede configurar la redirección a la nueva URL en el servidor web. Si utiliza Oracle HTTP Server (OHS) o el servidor HTTPD de Apache, redirija la URL mientras modifica la configuración de Oracle HTTP Server, como se describe en este tema.

Oracle HTTP Server o el servidor HTTPD de Apache

  1. Primero, instale y configure Oracle HTTP Server o el servidor HTTPD de Apache. Consulte Install Oracle HTTP Server.
  2. A continuación, localice el archivo mod_wl_ohs.conf en la raíz de dominio de OHS en la instalación de Oracle HTTP Server.

    Por ejemplo:

    <OHS>/oracle/user_projects/domains/SOHSDomain/config/fmwconfig/components/OHS/ohs1/mod_wl_ohs.conf

    (donde OHS es la ubicación del directorio raíz de la instalación de Oracle HTTP Server).

  3. Inserte las entradas weblogic_module adecuadas en mod_wl_ohs.conf.
    <IfModule weblogic_module> 
    ConnectTimeoutSecs 10
    ConnectRetrySecs 2
    DebugConfigInfo ON
    WLSocketTimeoutSecs 2
    WLIOTimeoutSecs 300
    Idempotent ON
    FileCaching ON
    KeepAliveSecs 20
    KeepAliveEnabled ON
    DynamicServerList ON
    WLProxySSL OFF
    </IfModule>
    <Location /essbase>
    SetHandler weblogic-handler
    WebLogicCluster hostname:managed_server_port
    Debug ALL
    KeepAliveSecs 20
    KeepAliveEnabled ON
    DebugConfigInfo ON
    </Location>
    
    
  4. Edite <Location /Essbase> y sustituya hostname por el nombre de host del host 1 y managed_server_port por el puerto del servidor gestionado de WebLogic de Essbase del host 1. Mediante un formato separado por comas (CSV), agregue cada nodo de servidor gestionado de Essbase adicional que tenga previsto incluir en el cluster.

    Por ejemplo:

    Supongamos que el host de Essbase 1 se ejecuta en hostname1:managed_server_port1 y el host 2 se ejecuta en hostname2:managed_server_port2.

    Para especificar los servidores en formato separado por comas, escriba (sin espacios agregados):

    hostname1:managed_server_port1,hostname2:managed_server_port2

    No agregue el prefijo http o https a ningún nombre de host.

  5. Guarde la configuración.
  6. Reinicie Oracle HTTP Server.
    1. Para parar Oracle HTTP Server:
      1. Vaya al directorio bin en la raíz de dominio de OHS.

        cd ./user_projects/domains/SOHSDomain/bin/
      2. Ejecute el script para detener el componente del servidor de OHS.

        ./stopComponent.sh ohs1
      3. En segundo plano, ejecute el script para parar el gestor de nodos.

        nohup ./stopNodeManager.sh &
      4. En el indicador de contraseña, introduzca la contraseña que se introdujo durante la instalación.
    2. Para iniciar Oracle HTTP Server:
      1. Navegue hasta el directorio bin en la raíz de dominio de OHS.

        cd ./user_projects/domains/SOHSDomain/bin/
      2. En segundo plano, ejecute el script para iniciar el gestor de nodos.

        nohup ./startNodeManager.sh &
      3. Ejecute el script para iniciar el componente del servidor de OHS.

        ./startComponent.sh ohs1
      4. En el indicador de contraseña, introduzca la contraseña que se introdujo durante la instalación.

    Para obtener información sobre la configuración SSL de Oracle HTTP Server, consulte Configure mod_wl_ohs.

Código de ejemplo para la descarga de SSL con el servidor HTTPD de Apache

A continuación, se muestra un ejemplo de configuración HTTP de descarga SSL con Apache HTTPD Server, utilizando el puerto predeterminado SSL 443 (o cualquier otro puerto seleccionado) para la redirección de descarga HTTPS a Essbase.


#
# Macro file for the Essbase proxy settings
#

<Macro EssbaseProxy $TargetUrl>
ProxyPreserveHost On
ProxyPassReverse  / $TargetUrl/
ProxyErrorOverride Off

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} ^.+$ [NC]
RewriteRule ^/$                      
%{HTTP:X-Forwarded-Proto}://%{HTTP_HOST}/essbase/jet/ [L,R]
RewriteCond %{HTTPS} on
RewriteRule ^/$                       https://%{HTTP_HOST}/essbase/jet/ [L,R]RewriteRule ^/$                       http://%{HTTP_HOST}/essbase/jet/ [L,R]

RewriteCond %{HTTP:X-Forwarded-Proto} ^.+$ [NC]
RewriteRule ^/essbase(/)?$            
%{HTTP:X-Forwarded-Proto}://%{HTTP_HOST}/essbase/jet/ [L,R]
RewriteCond %{HTTPS} on
RewriteRule ^/essbase(/)?$            https://%{HTTP_HOST}/essbase/jet/ [L,R]RewriteRule ^/essbase(/)?$            http://%{HTTP_HOST}/essbase/jet/ [L,R]

# jsession redirect issue
RewriteCond %{HTTP:X-Forwarded-Proto} ^.+$ [NC]
RewriteRule ^/essbase/jet(;.*)?$      
%{HTTP:X-Forwarded-Proto}://%{HTTP_HOST}/essbase/jet/ [L,R]
RewriteCond %{HTTPS} on
RewriteRule ^/essbase/jet(;.*)?$      https://%{HTTP_HOST}/essbase/jet/ [L,R]RewriteRule ^/essbase/jet(;.*)?$      http://%{HTTP_HOST}/essbase/jet/ [L,R]

# Logout url
RewriteCond %{HTTP:X-Forwarded-Proto} ^.+$ [NC]
RewriteRule ^/essbase/jet/logout.html
%{HTTP:X-Forwarded-Proto}://%{HTTP_HOST}/essbase/jet/ [L,R]
RewriteCond %{HTTPS} on
RewriteRule ^/essbase/jet/logout.html https://%{HTTP_HOST}/essbase/jet/ [L,R]RewriteRule ^/essbase/jet/logout.html http://%{HTTP_HOST}/essbase/jet/ [L,R]

# Support redirect_uri logout for virtual hosts
RewriteCond %{QUERY_STRING} ^logout=$
RewriteCond %{HTTP:X-Forwarded-Proto} ^.+$ [NC]
RewriteRule ^/essbase/redirect_uri$
%{HTTP:X-Forwarded-Proto}://%{HTTP_HOST}/essbase/redirect_uri?logout=%{HTTP:X-Forwarded-Proto}://%{HTTP:X-Forwarded-Host}/essbase/jet/logout.html [L,R]
RewriteCond %{QUERY_STRING} ^logout=$
RewriteCond %{HTTPS} on
RewriteRule ^/essbase/redirect_uri$
https://%{HTTP_HOST}/essbase/redirect_uri?logout=https://%{HTTP_HOST}/essbase/jet/logout.html [L,R]
RewriteCond %{QUERY_STRING} ^logout=$
RewriteRule ^/essbase/redirect_uri$
http://%{HTTP_HOST}/essbase/redirect_uri?logout=http://%{HTTP_HOST}/essbase/jet/logout.html [L,R]

# Set weblogic specific headers
<If "%{HTTP:X-Forwarded-Proto} == 'https' || %{HTTPS} == 'on'">
  RequestHeader set WL-Proxy-SSL "true"
  RequestHeader set IS_SSL       "ssl"
</If>

<Location "/">
   Options -Indexes
   SetOutputFilter DEFLATE
   SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
</Location>

<Location "/essbase">
   ProxyPass "$TargetUrl/essbase"
</Location>

<Location "/essbase/redirect_uri">
   ProxyPass "!"
</Location>

<Location "/weblogic/ready">
   ProxyPass "$TargetUrl/weblogic/ready"
</Location>

</Macro>