29
.Stone G G

톰캣 #08-웹서버 연동

Embed Size (px)

DESCRIPTION

아파치 웹서버와 톰캣의 연동을 설명합니다. 따라해보시면...솔직히 별거 없습니다..;;하하... 워커의 개념을 이해하시면 되겠습니다.

Citation preview

Page 1: 톰캣 #08-웹서버 연동

.StoneGG

Page 2: 톰캣 #08-웹서버 연동

{톰캣: T o m c a t }

Page 3: 톰캣 #08-웹서버 연동

웹서버 연동의 이유

mod_jk

클러스터

C H A P T E R # 8

웹서버 연동

Page 4: 톰캣 #08-웹서버 연동

웹서버 연동의 이유

Page 5: 톰캣 #08-웹서버 연동

웹서버 연동의 이유

1

Page 6: 톰캣 #08-웹서버 연동

1웹서버 연동의 이유

요청 분산

Page 7: 톰캣 #08-웹서버 연동

1웹서버 연동의 이유

소스 분산2

정적 동적

Page 8: 톰캣 #08-웹서버 연동

mod_jk

Page 9: 톰캣 #08-웹서버 연동

mod_jk

mod_jkmod_proxymod_proxy_balancer

Page 10: 톰캣 #08-웹서버 연동

mod_jk

사용방법!!!

1. mod_jk 모듈을 설정한다.

2. worker 를 정의한다.

3. 톰캣이 처리할 요청을 정의한다.

Page 11: 톰캣 #08-웹서버 연동

mod_jk

1. mod_jk 모듈을 설정한다.

: Download Connector

$ wget http://mirror.apache-kr.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.40-src.tar.gz

Page 12: 톰캣 #08-웹서버 연동

mod_jk

1. mod_jk 모듈을 설정한다.

: 압축풀고 컴파일하면 mod_jk.so 생성!$ tar xvfz tomcat-connectors-1.2.40-src.tar.gz $ cd ~/Downloads/tomcat-connectors-1.2.40-src/native $ ./configure —with-apxs=APACHE_HOME_DIR/bin/apxs (apxs 옵션값은 아파치 설치 디렉토리/bin/apxs 을 지정한다.)

$ make $ make install —> APACHE_HOME_DIR/modules/mod_jk.so

Page 13: 톰캣 #08-웹서버 연동

mod_jk

1. mod_jk 모듈을 설정한다.

: mod_jk.so 를 아파치에 로딩

LoadModule jk_module modules/mod_jk.so !<IfModule jk_module>      JkWorkersFile    conf/workers.properties     JkLogFile        logs/mod_jk.log     JkLogLevel       info     JkMountFile      conf/uri.properties </IfModule>

Page 14: 톰캣 #08-웹서버 연동

mod_jk

2. worker 를 정의한다.workers.properties

worker.[WORKER_NAME].[TYPE_옵션]=[정의] !

- worker.list=[WORKER_NAME] !

- worker.worker1.type=ajp13 !

- worker.worker2.host=192.168.0.11 !

- worker.loadbalancer.type=lb - worker.loadbalancer.balance_workers=[WORKER_NAME]

Page 15: 톰캣 #08-웹서버 연동

mod_jk

2. worker 를 정의한다.workers.properties

worker.list=loadbalancer !worker.worker1.port=8009 worker.worker1.host=192.168.0.10 worker.worker1.type=ajp13 worker.worker1.lbfactor=1 !worker.worker2.port=8009 worker.worker2.host=192.168.0.11 worker.worker2.type=ajp13 worker.worker2.lbfactor=1 !worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=worker1,worker2

Page 16: 톰캣 #08-웹서버 연동

mod_jk

3. 톰캣이 처리할 요청을 정의한다.uri.properties

[url or FILE_Extension]=[WORKER_LIST] !

- /*.do=worker1 - /*.jsp=worker2 !

- /servlet/* = loadbalancer

Page 17: 톰캣 #08-웹서버 연동

클러스터

Page 18: 톰캣 #08-웹서버 연동

1요청 분산

클러스터

Page 19: 톰캣 #08-웹서버 연동

13장애 극뽁

클러스터

Page 20: 톰캣 #08-웹서버 연동

3Http 세션

클러스터

세션 단절

Page 21: 톰캣 #08-웹서버 연동

34Http 세션

클러스터

클러 스터

Page 22: 톰캣 #08-웹서버 연동

클러스터

[CATALINA_HOME]/conf/server.xml

<Cluster> 디스크립터의 주석을 해제한다. !

!

!

!

!

!

Page 23: 톰캣 #08-웹서버 연동

클러스터

<!--For clustering, please take a look at documentation at: /docs/cluster-howto.html (simple how to) /docs/config/cluster.html (reference documentation) -->

Tocat 5.5의 <Cluster> 디스크립터를 참고하면 쉽게 상세 옵션을 적용할 수 있다!!!

Page 24: 톰캣 #08-웹서버 연동

클러스터

<Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4“ <!--멀티캐스트 IP-->

port="45564“ <!--멀티캐스트 포트--> frequency="500" dropTime=“3000"/> !

<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address=“172.16.4.99” <!--Tomcat1,2 자신 아이피를 설정--> port="4000" <!--동일서버에서 다수의 톰캣을 사용하는 경우 포트를 다르게 설정--> autoBind="100" selectorTimeout="5000" maxThreads="6"/>

Page 25: 톰캣 #08-웹서버 연동

클러스터

[WEBAPP]/WEB-INF/web.xml

<distributable/> 디스크립터를 추가한다. : Tomcat Cluster의 대상 어플리케이션으로 인지됨 !

!

!

!

!

Page 26: 톰캣 #08-웹서버 연동
Page 27: 톰캣 #08-웹서버 연동

웹서버 연동의 이유

mod_jk

클러스터

끝{G.Stone : 웹서버 연동}

Page 28: 톰캣 #08-웹서버 연동

NEXT

쓰레드

Page 29: 톰캣 #08-웹서버 연동

CategoryGMMG