将负载平衡器配置为支持故障转移

如果您计划安装和配置多个 Essbase 实例以支持故障转移,则需要前端负载平衡器。

负载平衡器需要考虑的一个选项是 Oracle HTTP Server ,因为它与 WebLogic 集成,并为 Oracle Fusion Middleware 提供 Web 服务。

另一个选项是 Apache HTTPD Server。

注意:

如果您要使用 URL /aps/SmartView 通过 Smart View 进行连接,则需要更改 URL。请参阅重定向到新的 Essbase Smart View 连接 URL 。或者,您可以配置指向 Web 服务器上的新 URL 的重定向。如果您使用的是 Oracle HTTP Server (OHS) 或 Apache HTTPD Server,请在修改 Oracle HTTP Server 配置时重定向 URL,如本主题中所述。

Oracle HTTP Server 或 Apache HTTPD 服务器

  1. 首先,安装并配置 Oracle HTTP Server 或 Apache HTTPD Server。请参阅 Install Oracle HTTP Server
  2. 然后,在 Oracle HTTP Server 安装的 OHS 域根下找到文件 mod_wl_ohs.conf

    示例:

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

    (其中 OHS 是 Oracle HTTP Server 安装的起始位置)。

  3. 将相应的 weblogic_module 项插入到 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. 编辑 <Location /Essbase>,并将 hostname 替换为主机 1 和 managed_server_port 的主机名,并将其替换为主机 1 的 Essbase WebLogic 托管服务器端口。使用逗号分隔格式 (Comma-separated Format,CSV),添加计划包括在群集中的每个其他 Essbase 受管服务器节点。

    示例:

    假设 Essbase 主机 1 在 hostname1:managed_server_port1 上运行,主机 2 在 hostname2:managed_server_port2 上运行。

    要以逗号分隔的格式指定服务器,请键入(不添加空格):

    hostname1:managed_server_port1,hostname2:managed_server_port2

    请勿将前缀 http 或 https 添加到任何主机名。

  5. 保存配置。
  6. 重新启动 Oracle HTTP Server
    1. 要停止 Oracle HTTP Server
      1. 导航到 OHS 域根下的 bin 目录。

        cd ./user_projects/domains/SOHSDomain/bin/
      2. 运行脚本以停止 OHS 服务器组件。

        ./stopComponent.sh ohs1
      3. 在后台运行脚本以停止节点管理器。

        nohup ./stopNodeManager.sh &
      4. 在密码提示符下,输入安装期间输入的密码。
    2. 要启动 Oracle HTTP Server
      1. 导航到 OHS 域根下的 bin 目录。

        cd ./user_projects/domains/SOHSDomain/bin/
      2. 在后台,运行脚本以启动节点管理器。

        nohup ./startNodeManager.sh &
      3. 运行该脚本以启动 OHS 服务器组件。

        ./startComponent.sh ohs1
      4. 在密码提示符下,输入安装期间输入的密码。

    有关 Oracle HTTP Server SSL 配置,请参见 Configure mod_wl_ohs

使用 Apache HTTPD 服务器进行 SSL 卸载的示例代码

下面是使用 Apache HTTPD Server 的 SSL 卸载的 HTTP 配置示例,该配置使用 SSL 默认端口 443(或任何其他所选端口)将 HTTPS 卸载重定向到 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>