본문 바로가기
TOMCAT/톰캣 아파치 연동

아파치 톰캣 연동 (리눅스)

by 정윤재 2010. 3. 11.


일단 process가 어떻게 돌아가는지 부터 알도록 하죠

아파치 -> mod_jk -> 톰캣

연동 과정을 아는 분들은 이것만 보고도 아실 것이고

모르는 분들은 설명을 들어주세요

아파치는 기본적으로 html 이나 그림 파일 같은 것을 읽습니다.

tomcat 은 그 외에도 jsp 파일을 컴파일 해서 읽을 수 있죠.

그래서 부하를 줄이기 위해 html 파일들은 아파치에서 jsp 파일은 톰캣에서

읽도록 분산을 시켜놓는데요...

원리는 간단합니다. 아파치와 톰캣이 각각 다른 Port  를 쓰게 하고

아파치 port 로 들어온 jsp 파일 요청 내용을 톰캣 port 로 링크를 걸어주는 것입니다.

그렇게 연결 해주는게 mod_jk 라는 것이구요.

(결국 모든 요청은 아파치 포트로 통일 된다는 것이군요 - 아파치 기본 포트가 80 포트니까요

80포트는 포트를 url 에 안써도 되는건 다들 아실 거라고 생각합니다.)

그럼 설치와 연동에 대해서 살펴보죠

설치 버전

아파치 2.2
톰캣 5.0
jdk 1.6
mod jk 1.2(커넥터 - 앞으로 이쪽 버전 밖에 안나오므로 이걸로 하면 되겠다)
받는것은 가이드 안해드립니다. 아파치 톰캣 사이트 가서 받으시고요
커넥터인 mod jk 는 톰캣 사이트에 connector 인가로 있습니다.

준비 단계
아파치 설치
아파치를 인터넷에서 받아서 압축을 푼 다음
./configure --prefix=/usr/local/apache2 \
--enable-module=so \
--enable-rewrite \
--enable-so

한후 make

make install 로 설치 함


톰캣 설치

tar -zxvf jakarta-tomcat-5.0.28.tar.gz

mv jakarta-tomcat-5.0.28 /usr/local/tomcat-5.0.28


커넥터 설치

tar xvzf tomcat-connectors-1.2.30-src.tar.gz

./buildconf.sh

./configure --with-apxs=/usr/local/apache2/bin/apxs

make

make install

mod_jk.so 가 아파치의 modules 폴더에 있는지 확인함

이렇게 하여 설치


연동 설정

 /usr/local/apache2/conf/httpd.conf 아래와 같이 추가

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties

JkMountFile conf/uriworkermap.properties

JkLogFile logs/mod_jk.log
JkLogLevel error
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"

JkMount /*.jsp default
JkMount /*.do default
#여기서 default 는 workers.properties 의 default

Alias /jsp-examples "/usr/local/tomcat/webapps/jsp-examples/"
<Directory "/jsp-examples">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
#이건 임의로 연결 시켜주는 것이므로 이런식으로 프로젝트를 연결 시켜주면 됩니다.
Alias /servlets-examples "/usr/local/tomcat/webapps/servlets-examples/"
JkMount /jsp-examples/*.jsp default
JkMount /servlets-examples/* default

또한

<IfModule dir_module>
    DirectoryIndex index.html index.jsp index.htm
</IfModule>

이부분이 원래 index.html 만 되어 있는데 뒤의 두개 붙여주면 편합니다.


/usr/local/apache2/conf/workers.properties 추가(간단하니까 vi 로 만드세요)

workers.tomcat_home=/usr/local/tomcat5.0.28-dcd2
workers.java_home=/usr/java/jdk1.6.0_17
ps=/
worker.list=default

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



/usr/local/apache2/conf/uriworkermap.properties 추가(간단하니까 vi 로 만드세요)
/*.do = default
/*.jsp = default


이게 잘 이해가 안가실 겁니다. worker.properties 에 8009 port 라는 부분을 주목해 볼 필요가

있습니다. tomcat 의 conf 폴더에 server.xml 을 보면

기본 port 는 8080 이고 ajp13 프로토콜은 8009 포트로 들어간다는 내용이 있습니다.

결국 아파치 포트로 들어가는 jsp 요청은 ajp13 프로토콜을 이용해서 8009 포트로 tomcat에

보내진다는 얘기지요.

확인을 하려면

->아파치설치 경로 /bin/apachectl start
->톰캣 설치 경로 /bin/startup.sh 
(아파치 먼저 올리고 톰캣 올려야 합니다.)


http://ip:port/jsp-examples/ 해보면 됩니다.
(ip,port 는 아파치 ip와 port 입니다.)

부디 이걸로 다시 헤매는 분들이 없었으면 좋겠네요

저도 처음 이걸 할때는 엄청 헤맸습니다. 한 3일 걸렸죠...

(회사 처음 들어가서 2일째인가에 했거든요)

경력 몇년 쌓이니까 잠깐 인터넷 서치 하면서 했는데 이해가 그냥 되더군요...
 
인터넷에 뭐가 안될 것 같고 뭐가 될것

내용인게 보이기 시작하더군요. 경력 참 무섭습니다.

인터넷에 따라해서 안되는거 너무 많아요 ㅜ.ㅜ

'TOMCAT > 톰캣 아파치 연동' 카테고리의 다른 글

아파치 설치시 ssl 설치 (https 접속)  (0) 2012.06.04
톰캣 아파치 연동  (0) 2009.11.10

댓글