WHEREIS

Apache, Tomcat 을 연동하려면 기본적으로 필요한게 Connector이다. 
현재는 JK Connector만 지원을 한다고 한다.
자세한 설정은 (http://babtingdev.tistory.com/189)를 참고하길 바란다.

아래는 httpd.conf 파일에서 연동에 관련된 설정이다.
 LoadModule jk_module modules/mod_jk.so    # 모듈 추가
JkWorkersFile "conf/workers.properties"   # JK 설정 파일 위치 및 이름

JkLogFile "logs/mod_jk.log"               # JK에 대한 로그 파일 위치
JkLogLevel info                           # 로그 레벨 지정
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"   # 로그 시간 포맷 지정
JkRequestLogFormat "%w %V %T"             # 로그 내용 포맷
JkMount /*  trust_loadballance                 # URL 링크 -> 모든 요청을 톰캣으로 지정
JkMount /servlet/*  trust_loadballance           # URL 링크 -> servlet 요청을 톰캣으로 지정

다음은 workers.properties 를 설정해야 하는데, 이 역시 자세한 설정은 http://babtingdev.tistory.com/189 를 참고하면 되겠다.

여기까지 설정하면 기본적인 연동은 끝나는데 이제부터 알아볼 내용은 tomcat 여러개가 구동되고 있을때 LoadBallancing하는 방법이다.

일단 Tomcat이 2개라고 가정하고 workers.properties 파일을 설정하겠다.
worker.list=tomcat1, tomcat2, trust_loadballance
 
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=1


worker.tomcat2.type=ajp13
worker.tomcat2.host=localhost
worker.tomcat2.port=8010
worker.tomcat2.lbfactor=2


worker.trust_loadballance.type=lb
worker.trust_loadballance.balanced_workers=tomcat1,tomcat2

tomcat1, tomcat2는 각각 tomcat instance이다.
worker.....lbfactor 설정은 작업량 할당 비율이라고 보면 된다. tomcat1 : tomcat2 = 1 : 2 인 것이다.

다음은 Tomcat의 server.xml 설정이다.
<Server port="11005" shutdown="SHUTDOWN"> <!-- 톰캣 프로세스를 관리하는 포트 -->
<Service name="Catalina">
    <Connector port="11080"/> <!-- 아파치를 통하지 않고 직접 접속하고자 할때의 포트 -->
    <Connector port="8009" protocol="AJP/1.3"/> <!-- 아파치와 연동하기 위한 포트 -->

    <!-- jvmRoute 명 JK 커넥터에서 톰캣 프로세스를 구분하는데 사용. 
         프로세스 별로 다르게 적용해야 함 -->
    <Engine jvmRoute="tomcat1" name="Catalina" defaultHost="localhost"> 
      <Host name="localhost" appBase="webapps"/>
    </Engine>
  </Service>
</Server>

<Server port="12005" shutdown="SHUTDOWN"> <!-- 톰캣 프로세스를 관리하는 포트 -->
<Service name="Catalina">
    <Connector port="11080"/> <!-- 아파치를 통하지 않고 직접 접속하고자 할때의 포트 -->
    <Connector port="8010" protocol="AJP/1.3"/> <!-- 아파치와 연동하기 위한 포트 -->

    <!-- jvmRoute 명 JK 커넥터에서 톰캣 프로세스를 구분하는데 사용. 
         프로세스 별로 다르게 적용해야 함 -->
    <Engine jvmRoute="tomcat2" name="Catalina" defaultHost="localhost"> 
      <Host name="localhost" appBase="webapps"/>
    </Engine>
  </Service>
</Server>

이렇게 설정하게 되면 Apache 는 tomcat1, tomcat2 로 적절히 분배하여 요청하게 된다.
tomcat1이 죽었을시에는 tomcat2로만 요청을 보내주는 기능도 해주게 된다.
 
출처 : http://www.ibm.com/developerworks/kr/library/opendw/20061017/?ca=drs-kr


'OS - Linux > Linux - ETC' 카테고리의 다른 글

모듈이란?  (0) 2014.03.06
메모리 관련 커널튜닝  (0) 2014.02.28
SUDO 명령어 사용 시 참고  (0) 2014.02.26
rabbitmq plugins enable  (0) 2014.02.13
리눅스 명령어 grep, egrep, fgrep  (0) 2014.02.13

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band
loading