mod_proxy_balancer
mod_proxy_balancer
기존 mod_proxy 1:1 도메인 매칭 방식에서 동일한 웹 서버를 구성하여 로드밸런싱 할 수 있다.
vhost.conf
<Virtualhost *:80> ServerName wp.kensei.co.kr Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED ProxyPassMatch ^/(.*)$ "balancer://http1" ProxyPassReverse / "balancer://http1" <Proxy "balancer://http1"> BalancerMember "http://172.16.0.209" route=1 connectiontimeout=3 BalancerMember "http://172.16.1.4" route=1 connectiontimeout=3 ProxySet stickysession=ROUTEID </Proxy> </VirtualHost>
|
ssl.conf
<VirtualHost *:443> # SSLProxyEngine On # ProxyRequests Off ProxyPreserveHost On ServerName wp.kensei.co.kr:443 SSLCertificateFile "/root/wp.kensei.co.kr/cert3.pem" SSLCertificateKeyFile "/root/wp.kensei.co.kr/privkey3.pem" SSLCertificateChainFile "/root/wp.kensei.co.kr/chain3.pem" Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED ProxyPassMatch ^/(.*)$ "balancer://https1" # ProxyPass "/" "balancer://https1" ProxyPassReverse "/" "balancer://https1" <Proxy "balancer://https1"> BalancerMember "https://172.16.0.209:443" route=1 connectiontimeout=3 BalancerMember "https://172.16.1.4:443" route=1 connectiontimeout=3 ProxySet stickysession=ROUTEID </Proxy> </VirtualHost>
|
헬스체크
|
/문자열 모두 프록시로 넘기기 (정규표현식 이용)
https://sarc.io/index.php/httpd/621-proxypassmatch-apache-http-server
|
source hasing 방식이 아님
브라우저 창이 닫히면 초기화 됨 브라우저 창이 열려 있는 상황에서만 분배 세션 유지됨 브라우저 기반이 아닌 웹 어플리케이션의 경우는 세션 유지 테스팅 필요 |