Apache 2.2 + mod_jk 1.2 ( load balancing ) + Tomcat 5.5 ( virtual hosting )
SERVER/회사서버셋팅중참조 2014. 8. 27. 18:07
구조도 |
* win32(vista)에서 설치했습니다.
# 1 . 기본 설치 - Apache, Tomcat ( 생략 ) # 2 . mod_jk 설치 - mod_jk.so 다운로드 apache사이트 접속 -> Tomcat프로젝트 -> Tomcat Connection -> Download -> Binary Releases - worker.properties 설정
# load balancing할 wlb를 list에 등록한다. # load balancing될 worker들의 경우 list에 등록하지 않아도 된다. worker.list=wlb
# load balancing될 worker들을 정의한다.
worker.t1.type=ajp13 worker.t1.host=xross.domain.co.kr worker.t1.port=8009 # redirect : t1을 사용하다 failover발생시 t2를 사용하겠다는 뜻
# activation : t2에서 failover발생시 전멸 -_-;;
# load balancing할 worker 속성 지정, (t1,t2)를 wlb하위에 추가한다. worker.wlb.type=lb
# security기법인 status는 생략
|
# 3. Apache 설정 - mod_jk.so 파일을 ${apache_home}/module 에 위치 ( apache내 다른곳에 위치 시켜도 무관 ) - 작성한 workers.properties파일을 ${apache_home}/conf하위에 위치 ( apache내 다른곳에 위치 시켜도 무관 )
- mod_jk.conf 작성
LoadModule jk_module modules/mod_jk.so JkWorkersFile conf/include/workers.properties JkLogFile logs/mod_jk.log JkLogLevel info JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " JkMount /*.* wlb ** LoadModule : mod_jk.so모듈을 추가시킴 ** JKWorkersFile : mod_jk에서 사용할 properties파일을 지정 ** JkMount : [url pattern] [worker name] : 해당 url 패턴시 작업할 worker를 지정 (load balancing의 경우 load balancing을 담당하는 worker를 지정하여야 한다. ) ** httpd.conf 파일에 설정값을 직접 넣을수도 있지만 지저분해지는 관계로 파일을 따로 빼서 사용 ( linux의 경우 conf.d 폴더에 넣으면 자동으로 include 됨. )
- httpd.conf 수정 Include conf/include/mod_jk.conf ** 작성한 mod_jk.conf를 추가한다.
|
# 3. Tomcat 설정 ( virtual hosting )
- conf/server.xml 수정 <Engine name="Catalina" defaultHost="xross.domain.co.kr"> <Host name="pod.domain.co.kr" appBase="webapps" </Engine> ** defaultHost : mod_jk의 worker들의 host name과 맞춰주도록 하자 ** 서로 다른 이름의 2개의 Host를 추가한다. ( 총 host는 xross, pod, cmp 3개가 된다. )
- 설정 폴더 생성 conf하위에 엔진명(Catalina)과 같은 이름의 폴더 하위에 host이름과 같은 폴더를 생성해준다.
- ${ apache_home }/conf/${ engine_name }/${ host_name } ex> conf/Catalina/cmp.domain.co.kr
- Context 생성및 WebApplication 지정 (생략) ** 5.5버젼에서는 해당 호스트 하위폴더의 ROOT.xml를 기본 "/" 패스로 인식하므로 ROOT.xml을 만들고 추가 context를 지정해줄수 있다. ( server.xml파일에 가능하면 하지말자 )
|
# 4. Tomcat 설정 ( mod_jk 연동및 load balancing 설정 )
- showdown port 변경 <Server port="8006" shutdown="SHUTDOWN"> 해당 열을 찾아 Tomcat간에 겹치지 않도록 수정한다. ** Tomcat을 한 서버에서 여러개 동시에 사용할 경우 shutdown port에 따라 서로에게 영향을 줄수도 있다.
- HTTP port 변경 <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> 해당 열을 찾아 Tomcat간에 겹치지 않으며 80 외의 다른 port를 쓰도록 한다. ** 80port는 apache에서 사용하며, tomcat간의 port설정을 찝찝하므로 겹치지 않게 했다.
- AJP port변경 <!-- Define an AJP 1.3 Connector on port 8009 --> 해당 열을 찾아 worker.properties에 입력한 worker의 port값과 일치하게 바꾸어 준다. ** 위 처럼 입력시 worker t2 를 사용하게 된다. 나머지 Tomcat은 8009로 입력해주어야 한다.
|
테스트 !!! Tomcat과 apache를 다 띄워 놓고 여러개의 브라우져에서 접속하여 보자. ( 안되면 apache와 상의 )
|
추가 : Load balancing 중 session문제 : mod_jk의 load balancing방식은 기본적으로 round robin이지만 한번 왔던 요청은 같은 Engine에 보내준다. 그러나 위와 같이만 설정하면 mod_jk는 예전에 보냈던 위치를 찾지 못하고 다른 Engine에게 보내줄수도 있다. 각 Engine에 jvmRoute를 명시하고 worker의 property에 route를 추가하여 각 Engine을 명시해주면 mod_jk가 각 Engine을 인식하고 바른곳으로 요청을 보내준다.
- Tomcat server.xml <Engine>설정 <Engine name="Catalina" defaultHost="dev.domain.co.kr" jvmRoute="jvm1">
- worker.properties 설정 worker.t1.route=jvm1 ** 각 worker마다 각각 Engine을 설정해준다.
|
'SERVER > 회사서버셋팅중참조' 카테고리의 다른 글
jBoss7 admin 계정 생성 (0) | 2014.08.27 |
---|---|
tar 명령어 (0) | 2014.08.27 |
apache 데몬 실행 권한 설정 (0) | 2014.08.27 |
[CentOS]상에서 apache + php + mysql 소스 컴파일의 이해 (0) | 2014.08.27 |
[JBOSS기본]JBossEAP 웹서버 연동 ( mod_jk mod-jk.conf ) (0) | 2014.08.27 |
AIX에서 Apache2 + Tomcat5.5 + JK Connector설치 (0) | 2014.08.27 |
Apache + Tomcat 연동 설정 튜닝 (0) | 2014.08.27 |
AIX 6 에서 Apache, Tomcat 설치하기 (1) | 2014.08.27 |