mod_proxy_balancer를 통해 WebLogic ~ OHS가 연동되어 있는 상황에서 WAS 인스턴스들에게 로드 밸런싱을 하고자 한다.
위의 결과로 기대할 수 있는 부분은 OHS가 처음에 session 값을 받은 서버에 sticky session처리가 되어, session이 이후로도 지속적으로 유지가 될 수 있다는 부분이다.
다만 지속적으로 같은 서버를 사용하게 되기 때문에, 로드 밸런싱의 효율이 떨어져 속도 저하가 일어날 수도 있다는 단점 또한 있다.
==========================================================================================
< 설정 방법>
=> 현재 WebLogic 인스턴스 2개가 연동되어 있는 상황이다.
## OHS 11g 기준
1. 모듈 사용
다음 2개의 모듈을 사용할 수 있게 처리한다(주석 되어있다면 해제).
2. proxy.conf 생성
httpd.conf가 위치한 곳에 proxy.conf를 추가적으로 생성한다.
proxy.conf #NOTE : This is a template to configure mod_proxy_balancer. Listen 7778 # mod_proxy_balancer의 포트 지정 <VirtualHost 192.168.56.101:7777> # WEB 노드 Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/;" env=BALANCER_ROUTE_CHANGED <Proxy balancer://proxyLB1> # balancer 이름 설정 ProxySet stickysession=COOKIE_NAME # 어플리케이션 쿠키네임 설정과 맞게 유지 # 클라이언트 요청이 back end로 proxy 시 다음 요청이 동일한 WAS 서버로 proxy 되게 하는 설정 BalancerMember http://192.168.56.109:8001 route=1 # WAS 노드 1 BalancerMember http://192.168.56.109:8004 route=2 # WAS 노드 2 </Proxy> #ProxyPass Set ProxyPass / balancer://proxyLB1/ # / balancer://{balancer_name}/ (마지막에 / 추가) ProxyPassReverse / balancer://proxyLB1/ # / balancer://{balancer_name}/ (마지막에 / 추가) </VirtualHost> |
이후에 서로 다른 어플리케이션을 호출한다고 해도, 지속적으로 같은 WAS 인스턴스에 연결되어 세션이 끊기지 않는 상황을 확인할 수 있다.
3. proxy.conf 사용
=> httpd.conf에 위에서 생성한 proxy.conf를 include한다.
## 결과
WebLogic 특정 인스턴스의 access log를 확인하면 지속적으로 같은 서버에 한해서만 요청이 들어오고 있으며, 세션 또한 유지된다.
## OHS 12c 기준
1. 모듈 사용
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" |
위 3개의 모듈을 사용(주석 해제)한다.
2. proxy.conf 생성
proxy.conf <VirtualHost 192.168.56.109:8080> Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <Proxy balancer://mycluster> BalancerMember http://192.168.56.109:8001 route=1 BalancerMember http://192.168.56.106:8004 route=2 ProxySet stickysession=ROUTEID </Proxy> ProxyPass / balancer://mycluster/ ProxyPassReverse / balancer://mycluster/ </VirtualHost> |
3. proxy.conf 사용
테스트 결과 윗 결과와 마찬가지로 첫번째로 인식된 WAS 서버를 지속적으로 읽고 들어가는 것을 확인할 수 있었음.
'Oracle > Web Tier' 카테고리의 다른 글
mime types 설정 (0) | 2022.09.29 |
---|---|
OHS plugin debugging (0) | 2022.09.21 |
OHS 성능 issue (EnableMMAP, EnableSendfile) (0) | 2022.07.26 |
OHS manual (0) | 2022.07.18 |
OHS mod_status (0) | 2022.07.18 |