フェイルオーバーをサポートするためのロード・バランサの構成
複数のEssbaseインスタンスをインストールし、フェイルオーバーをサポートするように構成するつもりである場合は、フロントエンドのロード・バランサが必要です。
ロード・バランサとして検討できるオプションの1つに、Oracle HTTP Serverがあげられます。なぜなら、Oracle HTTP ServerはWebLogicと統合され、Oracle Fusion MiddlewareのWebサービスを提供するためです。
もう1つのオプションは、Apache HTTPD Serverです。
ノート:
/aps/SmartView
というURLを使用して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 Server
- まず、Apache HTTPD Serverまたは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インストールのホームの場所です)
mod_wl_ohs.conf
に適切な「weblogic_module」エントリを挿入します。eas
とeasconsole
の場所のエントリを含める必要はありません。ただし、Essbase Administration Servicesを使用するようにホスト1でEssbaseが構成されている場合を除きます。<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 /eas> SetHandler weblogic-handler WebLogicCluster hostname:eas_managed_server_port Debug ALL KeepAliveSecs 20 KeepAliveEnabled ON DebugConfigInfo ON </Location> <Location /easconsole> SetHandler weblogic-handler WebLogicCluster hostname:eas_managed_server_port Debug ALL KeepAliveSecs 20 KeepAliveEnabled ON DebugConfigInfo ON </Location>
mod_wl_ohs.conf
に挿入したテキストを次のように編集します。<Location /Essbase>
を編集して、hostname
をホスト1のホスト名に置き換え、managed_server_port
をホスト1のEssbase WebLogic管理対象サーバー・ポートに置き換えます。コンマ区切りの形式を使用して、クラスタに含める予定の追加のEssbase管理対象サーバー・ノードをそれぞれ追加します。例:
たとえば、Essbaseホスト1が
hostname1:managed_server_port1
で実行され、ホスト2がhostname2:managed_server_port2
で実行されているとします。これらのサーバーをコンマ区切りの形式で指定するには、次のように入力します(スペースは追加しないでください)。
hostname1:managed_server_port1,hostname2:managed_server_port2
どのホスト名にもhttpまたはhttpsの接頭辞を追加しないでください。
<Location /eas>
を編集して、hostname
をホスト1のホスト名に置き換え、eas_managed_server_port
をホスト1のEssbase Administration Services WebLogic管理対象サーバー・ポートに置き換えます。<Location /easconsole>
を編集して、hostname
をホスト1のホスト名に置き換え、eas_managed_server_port
をホスト1のEssbase Administration Services WebLogic管理対象サーバー・ポートに置き換えます。
- 構成を保存します。
- 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 Serverを使用したSSLオフロードのサンプル・コード
ここでは、Apache HTTPD Serverを使用したSSLオフロードのサンプルHTTP構成を示します。この構成では、EssbaseへのHTTPSオフロードにSSLのデフォルト・ポート443 (または選択した別のポート)を使用しています。
#
# 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>