LAYER 4 & 7

mod_proxy_balancer

CHOMAN 2018. 4. 10. 17:46


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>

 






헬스체크



http://hashcode.co.kr/questions/1943/%EC%95%84%ED%8C%8C%EC%B9%98%EC%97%90-mod_proxy_balancer%EB%A5%BC-%EC%A0%81%EC%9A%A9%ED%95%A0-%EB%95%8C-failover-%EC%B2%98%EB%A6%AC%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%98%EB%82%98%EC%9A%94

 





/문자열 모두 프록시로 넘기기 (정규표현식 이용)



https://sarc.io/index.php/httpd/621-proxypassmatch-apache-http-server

 





source hasing 방식이 아님



브라우저 창이 닫히면 초기화 됨

브라우저 창이 열려 있는 상황에서만 분배 세션 유지됨

브라우저 기반이 아닌 웹 어플리케이션의 경우는 세션 유지 테스팅 필요