設定負載平衡器以支援容錯移轉

如果您計劃安裝和設定多個 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

  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>,並以主機 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 新增至任何主機名稱。

  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 組態的相關資訊,請參閱設定 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>