이번 글에서는 OHS에서 mod_proxy_balancer를 통한 loadbalancing 및 failover 테스트를 해보려고 한다.
단순 Proxy pass만 사용하면 뒷 단에 던져주는 역할 밖에 할 수없기 때문에 그 개념에 부하분산 및 FailOver가 추가된 것이다.
해당 글의 설정은 아파치 공식문서를 참고하였다.
http://ssh.dukejournals.org/mod/mod_proxy_balancer.html
1. Including 모듈
In order to get the ability of load balancing, mod_proxy and mod_proxy_balancer have to be present in the server.
LB 기능을 사용하기 위해서는 mod_proxy와 mod_proxy_balancer 모듈을 추가해주어야 한다.
LoadModule proxy_module "${ORACLE_HOME}/ohs/modules/mod_proxy.so" LoadModule proxy_balancer_module "${ORACLE_HOME}/ohs/modules/mod_proxy_balancer.so" |
> proxy balancer는 stickyness를 지원하기 때문에 클라이언트의 요청이 백엔드로 프록시되면 동일한 사용자에게로 부터 오는 다음의 모든 요청은 동일한 백엔드 WAS로 프록시되어야 한다.
2. 밸런서 구성 방법
cd /home/ohs/ohs1119/instance/hsy01/config/OHS/hsy01 ============== proxy.conf 생성 ============== vi proxy.conf [ohs@sydev hsy01]$ cat proxy.conf #NOTE : This is a template to configure mod_proxy_balancer. Listen 8080 <VirtualHost 192.168.56.106:8080> Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/;" env=BALANCER_ROUTE_CHANGED <Proxy balancer://proxyLB1> ProxySet stickysession=ROUTEID BalancerMember http://192.168.56.106:10011 route=1 BalancerMember http://192.168.56.106:10021 route=2 </Proxy> #ProxyPass Set ProxyPass / balancer://proxyLB1/ ProxyPassReverse / balancer://proxyLB1/ </VirtualHost> |
- ProxySet stickysession=ROUTEID : 클라이언트 요청이 백엔드로 프록시되면 동일한 클라이언트의 다음 요청에 대해 동일한 백엔드 WAS서버로 프록시되게끔 한다.(세션유지) - 어플리케이션의 쿠키네임 설정에 맞게 유지된다.
- Proxy balancer : 프록시 밸런서 이름 설정
- BalancerMember : 프록시할 WAS 노드 정보
- BALANCER_WORKER_ROUTE : 현재 요청에 사용될 작업 노드가 할당 된다.
* 참고로 ProxyPass와 ProxyPassReverse 작성할 때 balancer://밸런서명/ 와 같이 마지막에 /를 반드시 붙여줘야 한다!!(중요)
3. httpd.conf에 proxy.conf Including
# Include the Custom Proxy conf include "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/proxy.conf" include "moduleconf/*.conf" |
> 이후 ohs 기동 후 호출할 경우 WAS1, WAS2에 동일하게 부하분산된다.
4. OHS 12c(Apache 2.4) proxy_balancer 설정
httpd.conf에서 아래 3개의 모듈을 오픈 한다.
LoadModule proxy_balancer_module "${PRODUCT_HOME}/modules/mod_proxy_balancer.so"
LoadModule proxy_module "${PRODUCT_HOME}/modules/mod_proxy.so"
LoadModule lbmethod_byrequests_module "${PRODUCT_HOME}/modules/mod_lbmethod_byrequests.so"
그다음 proxy.conf 설정은 아래와 같다.
- httpd.conf
1207 include "proxy.conf"
- proxy.conf
<VirtualHost 192.168.56.106:8080> Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <Proxy balancer://mycluster> BalancerMember http://192.168.56.106:10011 route=1 BalancerMember http://192.168.56.106:10021 route=2 ProxySet stickysession=ROUTEID </Proxy> ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ </VirtualHost> |
'오라클 > WebServer' 카테고리의 다른 글
[OHS] ohs 12.2.1.3 Keytool 및 orapki를 이용한 테스트 인증서 생성 (0) | 2021.12.22 |
---|---|
[OHS] OHS 12.2.1.4 - 80/443 포트 설정 (0) | 2021.11.10 |
[OHS] Apache 2.4 gzip Compression 설정 (0) | 2021.08.04 |
[iPlanet] 기동시 SSL 인증서 패스워드 자동 입력하는 방법 (0) | 2021.08.04 |
[SunONE6] .perf 모니터링 설정 방법 (0) | 2021.08.03 |