Apache2로 간단한 로드밸런싱 하기

딱히 설명이 필요없는 간단 설정

  1. 아파치 모듈 설치
  2. 모듈 활성화
  3. 사이트 파일 수정
  4. 재시작
a2enmod proxy
a2enmod proxy_ajp
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html
a2enmod proxy_http
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod ssl
a2enmod lbmethod_bybusyness
a2enmod xml2enc
vim /etc/apache2/sites-enabled/000-default.conf
apache2ctl configtest
apache2ctl restart

사이트 설정 파일 예제

<Proxy balancer://backend>
         BalancerMember  http://app1.example.com keepalive=On
         BalancerMember  http://app2.example.com keepalive=On

         ProxySet lbmethod=bybusyness
</Proxy>
<VirtualHost *:443>
         SSLEngine               On
         SSLCertificateFile      /etc/apache2/my.cert
         SSLCertificateKeyFile   /etc/apache2/my.key

         ProxyPreserveHost       On
         ProxyRequests           Off

         <LocationMatch ^/.*>
                 ProxyPass balancer://backend
                 ProxyPassReverse balancer://backend
         </LocationMatch>

         ErrorLog ${APACHE_LOG_DIR}/error.log
         CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost> 

  • backend 라는 이름의 밸런서 설정
  • 가상 호스트 *:443에
    • SSL 인증서 설정
    • 프록시 설정
    • 특정 Location (예제에서는 모든 경로)에 프록시 설정

글쓴이

BS

BS == Programmer