将负载平衡器配置为支持故障转移
如果您计划安装和配置多个 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 服务器
- 首先,安装并配置 Oracle HTTP Server 或 Apache HTTPD Server。请参阅 Install Oracle HTTP Server 。
- 然后,在 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 安装的起始位置)。
- 将相应的
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> -
编辑
<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 添加到任何主机名。
- 保存配置。
- 重新启动 Oracle HTTP Server 。
- 要停止 Oracle HTTP Server :
-
导航到 OHS 域根下的
bin目录。cd ./user_projects/domains/SOHSDomain/bin/ -
运行脚本以停止 OHS 服务器组件。
./stopComponent.sh ohs1 -
在后台运行脚本以停止节点管理器。
nohup ./stopNodeManager.sh & - 在密码提示符下,输入安装期间输入的密码。
-
- 要启动 Oracle HTTP Server :
-
导航到 OHS 域根下的 bin 目录。
cd ./user_projects/domains/SOHSDomain/bin/ -
在后台,运行脚本以启动节点管理器。
nohup ./startNodeManager.sh & -
运行该脚本以启动 OHS 服务器组件。
./startComponent.sh ohs1 - 在密码提示符下,输入安装期间输入的密码。
-
有关 Oracle HTTP Server SSL 配置,请参见 Configure mod_wl_ohs 。
- 要停止 Oracle HTTP Server :
使用 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>