sitelink1 http://tomcat.apache.org/connectors-doc/...om/3285703 
sitelink2  
extra_vars5  
extra_vars6  

mod_jk를 이용한 Apache2 + Tomcat5.5 연동 및 가상호스팅

 

 

내용에 들어가기에 앞서


참고 사이트 : Configuring Tomcat5 and Apache2 with Virtual Hosts using mod_jk

Apache2와 Tomcat5.5등의 설치는 이곳에서 다루지 않습니다.
아파치와 톰캣 각각 어느정도 설정할 수 있다면 이 문서의 내용은 어렵지 않습니다.
개인마다 설정들이 조금씩 다르므로 무작정 똑같이 따라하기 보다는 경로에 주의하며 자신의 설정에 맞게 적용해야 합니다.

톰캣과 연동에 필요한 mod_jk(mod_jk2가 아님)라는 아파치용 모듈을 설치합니다.
모듈을 설치하는 방법은 다양하므로 아파치용 모듈을 설치하고 로드하는 방법은 따로 다루지 않겠습니다.
우분투라면 apt로 간단히 설치할 수 있습니다.

이 문서에서 아파치설정파일, 톰캣, mod_jk의 경로는 아래와 같습니다.
아파치설정파일 : /etc/apache2/
톰캣 : /usr/lib/apache-tomcat
mod_jk : /usr/lib/apache2/modules/mod_jk.so

 

 

 

 

workers.properties 파일 만들기


workers.properties 라는 파일을 적당한 곳에 생성하고 아래와 같은 코드를 넣습니다.
이곳에서는 /etc/apache2/workers.properties 로 생성했습니다.

#아래의 두 설정의 경로는 자신에 맞게 수정합니다.
workers.tomcat_home=/usr/lib/apache-tomcat
workers.java_home=/usr/lib/jvm/java-6-sun

ps=/

#아래 반복되는 worker1 대신 다른 이름도 상관없습니다.
worker.list=worker1

worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=worker1

worker.inprocess.type=jni
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar
worker.inprocess.cmd_line=start
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)lib$(ps)
i386$(ps)classic$(ps)libjvm.so

worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stderr

 

 

 

 

 

톰캣의 server.xml 수정


톰캣/conf/server.xml 에 아래의 코드를 추가합니다.
Server 태그 바로 아래쪽에 Listener 태그가 적힌곳에 추가하면 됩니다.
modjk와 workersConfig의 경로에 주의해서 자신에 맞게 수정합니다.
<Listener className="org.apache.jk.config.ApacheConfig" modJk="/usr/lib/apache2/modules/mod_jk.so" workersConfig="/etc/apache2/workers.properties" />


톰캣을 재시작 합니다.
$ cd /usr/lib/apache-tomcat/bin
$ ./shutdown.sh
$ ./startup.sh

에러없이 재시작 되면 아래와 같은 파일이 생성됩니다.
/usr/lib/apache-tomcat/conf/auto/mod_jk.conf

 

 

 

 

 

apache2.conf 수정


/etc/apache2/apache2.conf 설정 파일에 아래의 코드를 추가합니다. 항상 경로에 신중하세요.
Include /usr/lib/apache-tomcat/conf/auto/mod_jk.conf
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

# Globally deny access to the WEB-INF directory
<LocationMatch '.*WEB-INF.*'>
AllowOverride None
deny from all
</LocationMatch>



위의 코드에서 LocationMatch '.*WEB-INF.*' 부분이 중요합니다.
jsp에서 WEB-INF의 내용은 여러가지 설정을 갖고있는 중요한 부분이므로 볼 수 없도록 막아놓습니다.

 

 

 

 

VirtualHost 설정 파일 수정


이 문서는 /etc/apache2/sites-available/default 파일에 VirtualHost가 설정되어 있습니다.
파일을 열어보면 부분이 있습니다.

이 부분의 DocumentRoot를 수정합니다.(경로주의)
DocumentRoot /usr/lib/apache-tomcat/webapps/ROOT

그리고 아래의 코드를 VirtualHost 태그사이에 추가해줍니다.(worker1에 주의)
JkMount /*.jsp worker1

JkMount는 패턴에 해당하는 파일 또는 디렉토리를 톰캣이 처리하도록 하는 설정입니다.

파일을 저장하고 아파치를 재시작 합니다.
브라우저에서 http://127.0.0.1로 접속했을때 톰캣 페이지가 보이면 연동된 것입니다.


 

톰캣의 context 문제점


톰캣의 context가 문제가 될 수 있습니다.
컨텍스트의 경로는 DocumentRoot의 하위디렉토리인 것이 아니기 때문입니다.
아파치의 Alias 설정을 통해 문제를 해결 할 수 있습니다.
톰캣의 admin을 예로 들면 아래와 같습니다.

Alias /admin/ "/opt/tomcat/server/webapps/admin/"

JkMount /admin worker1
JkMount /admin/* worker1


 

가상호스팅


아파치, 톰캣 각각의 가상호스팅 설정에 대해서 자세히 다루지는 않겠습니다.
아파치, 톰캣 두개의 가상호스팅 설정이 일치해야 연동에 문제가 없습니다.

아파치의 가상호스팅
<VirtualHost test.ani>
    DocumentRoot /var/www/test
    JkMount  /*.jsp worker1
</VirtualHost>

톰캣의 가상호스팅(server.xml)
<Host appBase="/var/www/test" name="test.com">
    <Context path="" docBase="" debug="0" reloadable="true"/>
</Host>

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
33 Server.xml 에 Context 추가 황제낙엽 2012.09.19 248
32 아파치 ETag 이용한 정적파일 최적화 file 황제낙엽 2012.05.30 1304
31 톰캣 메모리 확장 시키기 file 황제낙엽 2012.02.01 360
30 Jeus 6.0 에 war 배포하기 file 황제낙엽 2011.05.18 5606
29 URIEncoding 황제낙엽 2011.05.12 215
28 톰캣의 URI encoding 설정하기 황제낙엽 2011.05.12 194
27 Integrating Jakarta Commons Logging with IBM WebSphere Application Server V5 file 황제낙엽 2011.04.08 451
26 WebSphere 입문 황제낙엽 2011.04.07 196
25 Post too large 황제낙엽 2010.08.06 244
24 아파치와 톰캣 연동 및 로드 발란싱 구현 (포스데이타) file 황제낙엽 2010.05.06 208
23 웹서버의 응답 코드에 대한 내용 (SIP Response code-v2) 황제낙엽 2010.03.22 442
22 htpasswd.exe 로 사용자 추가하기 황제낙엽 2009.09.01 183
21 웹로직 설치 및 운영 메뉴얼 몇가지 file 황제낙엽 2008.03.03 671
20 톰캣 5.x 에서의 URI 한글 인코딩 문제..(Set Character Encoding) 황제낙엽 2008.01.30 420
19 Howto Install Tomcat 5 + Apache 2 in WinXP 황제낙엽 2007.10.31 182
18 Windows 2000 Server + J2SDK 1.4.0 + Apache 2.0.47 + Tomcat 4.1.29 file 황제낙엽 2007.10.30 581
» Unix환경 mod_jk를 이용한 Apache2 + Tomcat5.5 (아파치2 + 톰캣5.5) 연동 및 가상호스팅 황제낙엽 2007.10.30 215
16 Apache Geronimo PetStore 데모 분석 황제낙엽 2007.07.11 1008
15 IIS에 PHP를 연동해보자!!! file 황제낙엽 2007.07.03 289
14 TUXEDO - Server Grouping에 대하여 황제낙엽 2007.04.18 227