-----------------------------------------------------------------------------------------------
출처: http://babtingdev.tistory.com/189
-----------------------------------------------------------------------------------------------
Apache + tomcat 은 먼저 설치가 되어 있어야 한다.
1. Connectors Download
apache.org 내에 tomcat 다운로드 페이지에 가면 Tomcat Connectors를 볼 수 있다.
들어가보면
mod_jk-1.2.26-httpd-2.2.4.so => mod_jk.so로 이름을 변경 후
C:\Program Files\Apache Software Foundation\Apache2.2\modules 안에 복사해준다.
(Apache 설치디렉토리이므로 설치환경에 따라 다를수도 있다.)
2. workers.properties 생성 + 설정
Apache설치디렉토리\conf 안에 workers.properties라는 파일을 생성해준다.
(workers와 worker를 잘 구분할 것.)
workers.java_home=C:\Program Files\Java\jdk1.5.0_15
ps=/
worker.list=trust
worker.trust.port=8009
worker.trust.host=localhost
worker.trust.type=ajp13
worker.trust.lbfactor=1
#worker.trust.cachesize=1
worker.trust.socket_timeout=10
3. httpd.conf 수정
<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkShmFile logs/httpd/mod_jk.shm
#JkLogFile logs/httpd/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
</IfModule>
# jsp용.
JkMount /* trust
# jsp 용 끝
Apache, Tomcat 을 연동하려면 기본적으로 필요한게 Connector이다.
현재는 JK Connector만 지원을 한다고 한다.
아래는 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 를 설정하면 기본적인 연동은 끝나는데
이제부터 알아볼 내용은 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
'IT_Server > Web_Server & WAS' 카테고리의 다른 글
[펌][NGINX] CentOS기반 Nginx, PHP-FPM, APC MySql 환경 구성 Quick 가이드 (0) | 2013.05.24 |
---|---|
[펌][NGINX] nginx.conf 파일 설정 (0) | 2013.05.24 |
[펌][NGINX] NGINX 주요 설정 (0) | 2013.05.24 |
[펌][NGINX] Node.js (Express Framework) 앞단에 Nginx 사용하기 (0) | 2013.05.24 |
[펌] 멀티 톰캣 인스턴스로 실행하기 (Multiple Tomcat Instances) (0) | 2012.07.05 |