Configurare un load balancer per supportare il failover
Se si prevede di installare e configurare più istanze di Essbase, per supportare il failover è necessario un load balancer front-end.
Un'opzione da considerare per un load balancer è Oracle HTTP Server, poiché è integrato con WebLogic e fornisce servizi Web per Oracle Fusion Middleware.
Un'altra opzione è il server HTTPD Apache.
Nota
Se ci si connette tramite Smart View, utilizzando l'URL/aps/SmartView, è necessario modificare l'URL. Fare riferimento alla sezione Reindirizza a nuovo URL connessione Smart View Essbase. In alternativa, è possibile configurare il reindirizzamento al nuovo URL sul server Web. Se si utilizza Oracle HTTP Server (OHS) o Apache HTTPD Server, reindirizzare l'URL durante la modifica della configurazione di Oracle HTTP Server, come descritto in questo argomento.
Oracle HTTP Server o Apache HTTPD Server
- Installare e configurare Oracle HTTP Server o Apache HTTPD Server. Vedere Installa Oracle HTTP Server.
- Individuare quindi il file
mod_wl_ohs.confnella root del dominio OHS nell'installazione di Oracle HTTP Server.Esempio:
<OHS>/oracle/user_projects/domains/SOHSDomain/config/fmwconfig/components/OHS/ohs1/mod_wl_ohs.conf(dove OHS è la posizione home dell'installazione di Oracle HTTP Server).
- Inserire le voci
weblogic_moduleappropriate inmod_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> -
Modificare
<Location /Essbase>e sostituirehostnamecon il nome host Host 1 emanaged_server_portcon la porta del server gestito WebLogic Essbase dell'host 1. Utilizzando un formato CSV (Comma-Separated Format), aggiungere ogni nodo server gestito Essbase aggiuntivo che si prevede di includere nel cluster.Esempio:
Si supponga che l'host Essbase 1 venga eseguito su
hostname1:managed_server_port1e l'host 2 venga eseguito suhostname2:managed_server_port2.Per specificare i server in formato separato da virgole, digitare (senza spazi aggiunti):
hostname1:managed_server_port1,hostname2:managed_server_port2Non aggiungere il prefisso http o https a nessun nome host.
- Salvare la configurazione.
- Riavviare Oracle HTTP Server.
- Per arrestare Oracle HTTP Server, procedere come segue:
-
Passare alla directory
binsotto la radice del dominio OHS.cd ./user_projects/domains/SOHSDomain/bin/ -
Eseguire lo script per arrestare il componente server OHS.
./stopComponent.sh ohs1 -
In background, eseguire lo script per arrestare Node Manager.
nohup ./stopNodeManager.sh & - Al prompt della password, immettere la password immessa durante l'installazione.
-
- Per avviare Oracle HTTP Server, procedere come segue:
-
Passare alla directory bin sotto la radice del dominio OHS.
cd ./user_projects/domains/SOHSDomain/bin/ -
In background, eseguire lo script per avviare Node Manager.
nohup ./startNodeManager.sh & -
Eseguire lo script per avviare il componente server OHS.
./startComponent.sh ohs1 - Al prompt della password, immettere la password immessa durante l'installazione.
-
Per la configurazione SSL di Oracle HTTP Server, vedere Configura mod_wl_ohs.
- Per arrestare Oracle HTTP Server, procedere come segue:
Codice di esempio per l'offload SSL mediante il server HTTPD Apache
Di seguito è riportata una configurazione HTTP di esempio dell'offload SSL mediante Apache HTTPD Server, che utilizza la porta predefinita SSL 443 (o qualsiasi altra porta selezionata) per il reindirizzamento dell'offload 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>