Failover를 지원하도록 로드 밸런서 구성
둘 이상의 Essbase 인스턴스를 설치 및 구성하려는 경우 페일오버를 지원하려면 프론트엔드 로드 밸런서가 필요합니다.
로드 밸런서에 대해 고려해야 할 한 가지 옵션은 Oracle HTTP Server입니다. WebLogic과 통합되어 있고 Oracle Fusion Middleware에 대한 웹 서비스를 제공하기 때문입니다.
또 다른 옵션은 Apache HTTPD Server입니다.
주:
URL/aps/SmartView를 사용하여 Smart View를 통해 연결하는 경우 URL을 변경해야 합니다. 새 Essbase Smart View 연결 URL로 재지정을 참조하십시오. 또는 웹 서버의 새 URL에 대한 재지정을 구성할 수 있습니다. OHS(Oracle HTTP Server) 또는 Apache HTTPD Server를 사용 중인 경우 이 항목에 설명된 대로 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>를 편집하고hostname을 호스트 1 및managed_server_port의 호스트 이름으로 호스트 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 오프로드에 대한 샘플 코드
다음은 Essbase로 재지정되는 HTTPS 오프로드에 SSL 기본 포트 443(또는 선택된 다른 포트)을 사용하는 Apache HTTPD Server를 사용하는 SSL 오프로드의 샘플 HTTP 구성입니다.
#
# 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>