ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [WAS] Apache2.2 로드 밸런싱 Tomcat 6.0 세션 클러스터링
    Developer/개발 이야기 2013. 8. 23. 14:41

    1. Apache 로드 밸런싱(Loadbalancing)

    로드 밸런싱

     

    - Web 서버와 Was 서버와 연동되어 있다해도 실제로 수행되는 작업들이 골구로 분산되지 않으면 제대로 활용하지 못하는데 이러한 문제를 해결하기 위해 작업을 균형있게 분산시켜주기 위해 로드 밸런싱을 사용

     

     

     

    1) AJP connector 설정 파일 작성

     

    아파치 설치 경로 /conf/mod_jk.conf

    LoadModule  jk_module modules/mod_jk-1.2.28-httpd-2.2.3.so  //JK Connector Module
    JkWorkersFile conf/workers.properties
    JkLogFile logs/jk.log             //jk 연동 로그
    JkLogLevel info
    JkLogStampFormat "[%a %b %d %H:%M:%S %y]"
    JkMount /*.jsp loadbalancer       //workers.properties list에 매칭될 ID
    JkMount /*.do loadbalancer
    JkMount /*.html loadbalancer
    JkMount /servlet/* loadbalancer
    JkMount /* loadbalancer
    JkMount /*.gif loadbalancer
    

     

     

     

    2) workers.properties 설정

     

    아파치 설치 경로/conf/workers.properties

     

    worker.list=loadbalancer  //mod_jk.conf에 명시된 ID
    worker.tomcat1.type=ajp13
    worker.tomcat1.host=10.10.100.11 // tomcat1이 될 호스트
    worker.tomcat1.port=8008 //이 포트는 서로 달라야 합니다.
    worker.tomcat1.lbfactor=1
    worker.tomcat2.type=ajp13
    worker.tomcat2.host=10.10.100.12 // tomcat2가 될 호스트
    worker.tomcat2.port=8009 //이포트는 서로 달라야 합니다.
    worker.tomcat2.lbfactor=1
    worker.loadbalancer.type=lb
    worker.loadbalancer.balanced_workers=tomcat1,tomcat2
    

     

     

    3) Tomcat6 설정

     

    Tomcat설치경로/conf/workers.properties

     

    Tomcat 서버 1(10.10.100.11)
    
    
    Tomcat 서버 2(10.10.100.11)
    
    
    

     

     

     

     

    4) Apache 로드 밸런싱 테스트

     

    테스트페이지1

     

     

    <%
      session.setAttribute("a","a");
    %>
    <html>
    <head>
    <title>TOMCAT1(10.10.100.11)</title>
    </head>
    <body>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr bgcolor="#CCCCCC">
        <td width="13%">TomcatA Machine</td>
        <td width="87%">&nbsp;</td>
      </tr>
      <tr>
        <td>Session ID :</td>
        <td><%=session.getId()%></td>
      </tr>
    </table>
    </body>
    </html>

     

     

    테스트페이지2

     

    <%
      session.setAttribute("a","a");
    %>
    <html>
    <head>
    <title>TOMCAT2(10.10.100.12)</title>
    </head>
    <body>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr bgcolor="#CCCC00">
        <td width="13%">TomcatB Machine</td>
        <td width="87%">&nbsp;</td>
      </tr>
      <tr>
        <td>Session ID :</td>
        <td><%=session.getId()%></td>
      </tr>
    </table>
    </body>
    </html>

     

     

     

     

    5) Apache 설정

     

    아파치설치경로/conf/httpd.conf

     

    Include conf/mod_jk.conf

     

     

     

     

     

     

    2. Tomcat 세션 클러스터링

     

    세션 클러스터링 이란?

     

    세션 클러스터링 이란 세션을 공유하여 여러 대의 서버를 한 대처럼 통합 관리 및 운용할 수 있도록 하는 기능이다.

     

    예를 들어 시스템에 로그인 한후 로그인처리 완료된 세션을 가지고 있다가, 예기치 못한 서버 오류, 과도한 트래픽으로 다른 서버로 변경이 되었을 경우, 로그인 완료된 세션이 없을경우 로그인을 다시 시도해야 하므로 이러한 문제를 해결하고자 세션 클러스터링을 사용합니다.

     

     

    Include conf/mod_jk.conf
    

     

    
      
      
    	
    	
    	
    	  
    	
    	
    	
      
      
      
      
      
      
       
    

     

     

     

    2) Tomcat 세션 클러스터링 테스트

     

    Apache 로드 밸런싱 테스트시 만들었던 Tomcat1, 2 페이지로 테스트가 가능.

     

    동일한 Session ID가 동일한지 확인해서 동일하면 정상적으로 세션 클러스터링 작업이 완료.

     

     

     

    ETC.

     

    tomcat5.5 까지는 clustering lib가 포함되어있지만 tomcat6.0에는 없어 별도로 jar 파일을 넣어주어야 한다.

     

     

    catalina-cluster-5.5.9.jar, commons-logging-1.1.jar,commons-modeler-2.0-5.5.23.jar

     

     

     

     

    본 문에 저작권은 http://jqdom.com/archives/363 에 있습니다.

     

     

     

     

     

     

     

     

    'Developer > 개발 이야기' 카테고리의 다른 글

    [자료구조] 기초 - 개론  (0) 2013.05.14
    [자료구조] 기초 - 자료 복잡도  (0) 2013.05.14
    이스트 필기 시험 웹 개발직군  (0) 2013.05.10
    클라우드 소싱  (0) 2013.04.24
    해킹보안 트리란다. ㅋ  (0) 2013.04.17
© 2018 T-Story. All right reserved.