Configurar um Balanceador de Carga para Suportar Failover

Se você planeja instalar e configurar mais de uma instância do Essbase para suportar failover, precisará de um balanceador de carga front-end.

Uma opção a ser considerada para um balanceador de carga é o Oracle HTTP Server, porque ele é integrado ao WebLogic e fornece serviços Web para o Oracle Fusion Middleware.

Outra opção é o Apache HTTPD Server.

Observação:

Se você estiver se conectando por meio do Smart View, usando o URL /aps/SmartView, será necessário alterar o URL. Consulte Redirecionar para o Novo URL de Conexão do Essbase Smart View. Como alternativa, você pode configurar o redirecionamento para o novo URL no servidor Web. Se você estiver usando o Oracle HTTP Server (OHS) ou o Apache HTTPD Server, redirecione o URL ao modificar a configuração do Oracle HTTP Server, conforme descrito neste tópico.

Oracle HTTP Server ou Apache HTTPD Server

  1. Primeiro, instale e configure o Oracle HTTP Server ou o Apache HTTPD Server. Consulte Instalar o Oracle HTTP Server.
  2. Em seguida, localize o arquivo mod_wl_ohs.conf na raiz do domínio do OHS na instalação do Oracle HTTP Server.

    Exemplo:

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

    (onde OHS é o local home da instalação do Oracle HTTP Server).

  3. Insira as entradas weblogic_module apropriadas em 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> e substitua hostname pelo nome do host do Host 1 e managed_server_port pela porta do servidor gerenciado WebLogic do Essbase do Host 1. Usando um formato separado por vírgulas (CSV), adicione cada nó adicional do servidor gerenciado do Essbase que você planeja incluir no cluster.

    Exemplo:

    Digamos que o Host 1 do Essbase seja executado no hostname1:managed_server_port1 e o Host 2 no hostname2:managed_server_port2.

    Para especificar os servidores em formato separado por vírgulas, digite (sem espaços adicionados):

    hostname1:managed_server_port1,hostname2:managed_server_port2

    Não adicione o prefixo http ou https a nenhum nome de host.

  5. Salve a configuração.
  6. Reinicie o Oracle HTTP Server.
    1. Para interromper o Oracle HTTP Server:
      1. Navegue até o diretório bin na raiz do domínio do OHS.

        cd ./user_projects/domains/SOHSDomain/bin/
      2. Execute o script para interromper o componente do servidor OHS.

        ./stopComponent.sh ohs1
      3. Em segundo plano, execute o script para interromper o Gerenciador de Nós.

        nohup ./stopNodeManager.sh &
      4. No prompt de senha, insira a senha que foi inserida durante a instalação.
    2. Para iniciar o Oracle HTTP Server:
      1. Navegue até o diretório bin na raiz de domínio do OHS.

        cd ./user_projects/domains/SOHSDomain/bin/
      2. Em segundo plano, execute o script para iniciar o Gerenciador de Nós.

        nohup ./startNodeManager.sh &
      3. Execute o script para iniciar o componente do servidor OHS.

        ./startComponent.sh ohs1
      4. No prompt de senha, insira a senha que foi inserida durante a instalação.

    Para a configuração de SSL do Oracle HTTP Server, consulte Configurar mod_wl_ohs.

Código de Amostra para Offload de SSL usando Apache HTTPD Server

Aqui está uma configuração HTTP de amostra de offload SSL usando o Apache HTTPD Server, usando a porta padrão SSL 443 (ou qualquer outra porta selecionada) para redirecionamento de offload HTTPS para o 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>