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
- Installieren und konfigurieren Sie zunächst Oracle HTTP Server oder Apache HTTPD Server. Weitere Informationen finden Sie unter Oracle HTTP Server installieren.
- Suchen Sie dann die Datei
mod_wl_ohs.confunter 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).
- Fügen Sie die entsprechenden
weblogic_module-Einträge inmod_wl_ohs.confein.<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> -
Bearbeiten Sie
<Location /Essbase>, und ersetzen Siehostnamedurch den Hostnamen Host 1 undmanaged_server_portdurch 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_port1und Host 2 aufhostname2:managed_server_port2ausgeführt.Um die Server im kommagetrennten Format anzugeben, geben Sie Folgendes ein (ohne Leerzeichen):
hostname1:managed_server_port1,hostname2:managed_server_port2Fügen Sie das Präfix http oder https keinem Hostnamen hinzu.
- Speichern Sie die Konfiguration.
- Starten Sie Oracle HTTP Server neu.
- So stoppen Sie Oracle HTTP Server:
-
Navigieren Sie zum Verzeichnis
binunter Ihrem OHS-Domain-Root.cd ./user_projects/domains/SOHSDomain/bin/ -
Führen Sie das Skript aus, um die OHS-Serverkomponente zu stoppen.
./stopComponent.sh ohs1 -
Führen Sie im Hintergrund das Skript aus, um den Node Manager zu stoppen.
nohup ./stopNodeManager.sh & - Geben Sie an der Passworteingabeaufforderung das Passwort ein, das während der Installation eingegeben wurde.
-
- So starten Sie Oracle HTTP Server:
-
Navigieren Sie zum Bin-Verzeichnis unter Ihrem OHS-Domain-Root.
cd ./user_projects/domains/SOHSDomain/bin/ -
Führen Sie im Hintergrund das Skript aus, um den Node Manager zu starten.
nohup ./startNodeManager.sh & -
Führen Sie das Skript aus, um die OHS-Serverkomponente zu starten.
./startComponent.sh ohs1 - 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.
- So stoppen Sie Oracle HTTP Server:
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>