Configuration d'un équilibreur de charge pour la prise en charge du basculement

Si vous prévoyez d'installer et de configurer plusieurs instances Essbase, pour prendre en charge le basculement, vous avez besoin d'un équilibreur de charge frontal.

Une option à prendre en compte pour un équilibreur de charge est Oracle HTTP Server, car il est intégré à WebLogic et fournit des services Web pour Oracle Fusion Middleware.

Une autre option est le serveur HTTPD Apache.

Remarques :

Si vous êtes connecté via Smart View, à l'aide de l'URL /aps/SmartView, vous devez modifier l'URL. Reportez-vous à Rediriger vers une nouvelle URL de connexion Essbase Smart View. Vous pouvez également configurer la redirection vers la nouvelle URL sur le serveur Web. Si vous utilisez Oracle HTTP Server (OHS) ou Apache HTTPD Server, redirigez l'URL lors de la modification de la configuration d'Oracle HTTP Server, comme décrit dans cette rubrique.

Oracle HTTP Server ou Apache HTTPD Server

  1. Tout d'abord, installez et configurez Oracle HTTP Server ou Apache HTTPD Server. Reportez-vous à Installation d'Oracle HTTP Server.
  2. Localisez ensuite le fichier mod_wl_ohs.conf sous la racine du domaine OHS dans l'installation d'Oracle HTTP Server.

    Par exemple :

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

    (où OHS est l'emplacement d'origine de l'installation d'Oracle HTTP Server).

  3. Insérez les entrées weblogic_module appropriées dans 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. Modifiez <Location /Essbase> et remplacez hostname par le nom d'hôte de l'hôte 1 et managed_server_port par le port de serveur géré Essbase WebLogic de l'hôte 1. A l'aide d'un format CSV, ajoutez chaque noeud de serveur géré Essbase supplémentaire que vous prévoyez d'inclure dans votre cluster.

    Par exemple :

    Supposons que l'hôte Essbase 1 s'exécute sur hostname1:managed_server_port1 et l'hôte 2 sur hostname2:managed_server_port2.

    Pour spécifier les serveurs au format séparé par des virgules, tapez (sans espace ajouté) :

    hostname1:managed_server_port1,hostname2:managed_server_port2

    N'ajoutez pas le préfixe http ou https à un nom d'hôte.

  5. Enregistrez la configuration.
  6. Redémarrez Oracle HTTP Server.
    1. Pour arrêter Oracle HTTP Server, procédez comme suit :
      1. Accédez au répertoire bin sous la racine du domaine OHS.

        cd ./user_projects/domains/SOHSDomain/bin/
      2. Exécutez le script pour arrêter le composant serveur OHS.

        ./stopComponent.sh ohs1
      3. En arrière-plan, exécutez le script pour arrêter le gestionnaire de noeuds.

        nohup ./stopNodeManager.sh &
      4. A l'invite de mot de passe, saisissez le mot de passe saisi lors de l'installation.
    2. Pour démarrer Oracle HTTP Server, procédez comme suit :
      1. Accédez au répertoire bin sous la racine du domaine OHS.

        cd ./user_projects/domains/SOHSDomain/bin/
      2. En arrière-plan, exécutez le script pour démarrer le gestionnaire de noeuds.

        nohup ./startNodeManager.sh &
      3. Exécutez le script pour démarrer le composant serveur OHS.

        ./startComponent.sh ohs1
      4. A l'invite de mot de passe, saisissez le mot de passe saisi lors de l'installation.

    Pour la configuration SSL d'Oracle HTTP Server, reportez-vous à Configuration de mod_wl_ohs.

Exemple de code pour le déchargement SSL à l'aide du serveur Apache HTTPD

Voici un exemple de configuration HTTP de déchargement SSL à l'aide du serveur Apache HTTPD, à l'aide du port SSL par défaut 443 (ou de tout autre port sélectionné) pour la redirection de déchargement HTTPS vers 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>