Load Balancer zur Unterstützung von Failover konfigurieren

Wenn Sie mehrere Essbase-Instanzen installieren und konfigurieren möchten, um Failover zu unterstützen, benötigen Sie einen Frontend-Load Balancer.

Eine Option, die für einen Load Balancer zu berücksichtigen ist, ist Oracle HTTP Server, da er in WebLogic integriert ist und Webservices für Oracle Fusion Middleware bereitstellt.

Eine weitere Option ist Apache HTTPD Server.

Hinweis:

Wenn Sie eine Verbindung über Smart View herstellen und die URL /aps/SmartView verwenden, müssen Sie die URL ändern. Siehe Umleiten zu neuer Essbase Smart View-Verbindungs-URL. Alternativ können Sie die Umleitung zur neuen URL auf dem Webserver konfigurieren. Wenn Sie Oracle HTTP Server (OHS) oder Apache HTTPD Server verwenden, leiten Sie die URL um, während Sie die Oracle HTTP Server-Konfiguration ändern, wie in diesem Thema beschrieben.

Oracle HTTP Server oder Apache HTTPD-Server

  1. Installieren und konfigurieren Sie zunächst Oracle HTTP Server oder Apache HTTPD Server. Weitere Informationen finden Sie unter Oracle HTTP Server installieren.
  2. Suchen Sie dann die Datei mod_wl_ohs.conf unter Ihrem OHS-Domain-Root in der Oracle HTTP Server-Installation.

    Beispiel:

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

    (wobei OHS das Home-Verzeichnis der Oracle HTTP Server-Installation ist).

  3. Fügen Sie die entsprechenden weblogic_module-Einträge in mod_wl_ohs.conf ein.
    <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. Bearbeiten Sie <Location /Essbase>, und ersetzen Sie hostname durch den Hostnamen Host 1 und managed_server_port durch den Essbase WebLogic-Managed Server-Port von Host 1. Fügen Sie mit einem durch Komma getrennten Format (CSV) jeden zusätzlichen Essbase-Managed Server-Knoten hinzu, den Sie in das Cluster aufnehmen möchten.

    Beispiel:

    Angenommen, Essbase-Host 1 wird auf hostname1:managed_server_port1 und Host 2 auf hostname2:managed_server_port2 ausgeführt.

    Um die Server im kommagetrennten Format anzugeben, geben Sie Folgendes ein (ohne Leerzeichen):

    hostname1:managed_server_port1,hostname2:managed_server_port2

    Fügen Sie das Präfix http oder https keinem Hostnamen hinzu.

  5. Speichern Sie die Konfiguration.
  6. Starten Sie Oracle HTTP Server neu.
    1. So stoppen Sie Oracle HTTP Server:
      1. Navigieren Sie zum Verzeichnis bin unter Ihrem OHS-Domain-Root.

        cd ./user_projects/domains/SOHSDomain/bin/
      2. Führen Sie das Skript aus, um die OHS-Serverkomponente zu stoppen.

        ./stopComponent.sh ohs1
      3. Führen Sie im Hintergrund das Skript aus, um den Node Manager zu stoppen.

        nohup ./stopNodeManager.sh &
      4. Geben Sie an der Passworteingabeaufforderung das Passwort ein, das während der Installation eingegeben wurde.
    2. So starten Sie Oracle HTTP Server:
      1. Navigieren Sie zum Bin-Verzeichnis unter Ihrem OHS-Domain-Root.

        cd ./user_projects/domains/SOHSDomain/bin/
      2. Führen Sie im Hintergrund das Skript aus, um den Node Manager zu starten.

        nohup ./startNodeManager.sh &
      3. Führen Sie das Skript aus, um die OHS-Serverkomponente zu starten.

        ./startComponent.sh ohs1
      4. Geben Sie an der Passworteingabeaufforderung das Passwort ein, das während der Installation eingegeben wurde.

    Informationen zur Oracle HTTP Server-SSL-Konfiguration finden Sie unter mod_wl_ohs konfigurieren.

Beispielcode für SSL-Offload mit Apache HTTPD-Server

Im Folgenden finden Sie eine HTTP-Beispielkonfiguration für die SSL-Offload mit Apache HTTPD Server, wobei der SSL-Standardport 443 (oder ein anderer ausgewählter Port) für die HTTPS-Offloadumleitung zu Essbase verwendet wird.


#
# 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>