設定負載平衡器以支援容錯移轉
如果您計劃安裝和設定多個 Essbase 例項,以支援容錯移轉,您需要一個前端負載平衡器。
Oracle HTTP Server 是負載平衡器考量的一個選項,因為它與 WebLogic 整合,並提供 Oracle Fusion Middleware 的 Web 服務。
另一個選項是 Apache HTTPD 伺服器。
附註:
如果您是透過 Smart View 連線,請使用 URL/aps/SmartView,則必須變更 URL。請參閱重新導向至新的 Essbase Smart View 連線 URL 。或者,您可以設定重新導向至 Web 伺服器上的新 URL。如果您使用的是 Oracle HTTP Server (OHS) 或 Apache HTTPD 伺服器,請在修改 Oracle HTTP Server 組態時重新導向 URL,如本主題所述。
Oracle HTTP Server 或 Apache HTTPD Server
- 首先,安裝並設定 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>,並以主機 1 和managed_server_port的主機名稱取代hostname,並以主機 1 的 Essbase WebLogic 管理伺服器連接埠取代。使用逗號分隔的格式 (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 組態的相關資訊,請參閱設定 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>