Apache와 Tomcat을 mod_jk로 연동하기

2011, Aug 06    

매번 연결할때마다 인터넷 검색해서 하다가 
정리가 잘안되어 있어서 이상한것도 있고해서 포스팅하게 되었네요 ㅋ

일단 
Apache는 /etc/httpd
Tomcat은 /etc/tomcat
 에 설치하였으며
JDK설치 및 자바, 톰켓 환경변수 모두 설치 하였다고 가정하겠습니다.

아파치와 톰켓을 연동하게 되면
정적으로 제공될 파일(CSS,JS,이미지 파일... 기타등등.)들은 아파치로 바로 응답하게되고
동적으로 제공해야될 것들(J2EE로 만들어내는 것 또는 JSP)은 아파치를 거쳐 톰켓에서 생성후 응답하게 됩니다.

정적과 동적으로 만들어져야 될 것을 분리하여 제공하므로 서로 서로 부담이 좀 줄어들겠죠?ㅋ

1.mod_jk 설치
mod_jk.so 파일을 아파치를 설치한 폴더(/etc/httpd)의 module부분에 넣어야됩니다.

http://tomcat.apache.org/download-connectors.cgi 가시면 받을 수가 있는데요</p>

또 나중에 추가적은 설정을 필요하시면 여기서 찾아서 설정을 추가하시면 될것 같습니다.ㅋ </span>

 tomcat-connectors-1.2.32-src.tar.gz을 받았습니다.


#tar zxvf tomcat-connectors-1.2.32-src.tar.gz


을 실행해 압축을 풀구요


#cd tomcat-connectors-1.2.32-src/native 


로 폴더 이동


#chmod +x buildconf.sh


로 권한 변경


#./buildconf.sh


#./configure --with-apxs=/usr/sbin/apxs --with-java-home=$JAVA_HOME


저는 redhat liunx기반으로 설치를 하는 바람에


apxs 경로를 처음에 잡지 못했는데 

http://it.toolbox.com/blogs/lim/compiling-tomcat-connector-mod_jk-on-redhat-6805 

을 참조하여 설치후 경로를 잡았습니다.


 #make install 하시면 


컴파일이 진행되며


tomcat-connectors-1.2.32-src/native 경로에


apache-2.0 폴더가 있을 겁니다.


 거기안에 우리가 원하던 mod_jk.so가 있습니다.


#mv mod_jk.so /etc/httpd/module/mod_jk.so


로 mod_jk.so파일을 이동시키며

2.httpd.conf 설정 변경
아파치 폴더(/etc/httpd)의 conf폴더의 httpd.conf 아랫 부분에 아래의 것을 추가 해줍니다.

LoadModule jk_module modules/mod_jk.so
JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile /etc/httpd/mod_jk.log
jkLogLevel error
<VirtualHost *:80>
    ServerAdmin rucifer1217@gmail.com #별로 중요치 않음..ㅋ
    DocumentRoot /etc/tomcat/webapps #톰켓의 우리가 실행시킬 것의 위치
    ServerName xxx.xxx.xxx.xxx #호스트 이름 또는 도메인 이름.
    JkMount /*.save worker1 #톰켓과 연결될것의 url 맵핑이라 보면 되겠다.ㅋ
    JkMount /saveMoney/*.save worker1 #톰켓과 연결될것의 url 맵핑이라 보면 되겠다.ㅋ
</VirtualHost>
#경로지정.
Alias /saveMoney "/etc/tomcat/webapps/saveMoney"
 
<Directory "/etc/tomcat/webapps/saveMoney">
Options Indexes FollowSymLinks
DirectoryIndex index.html index.htm index.jsp
</Directory>

#해당 폴더는 수정 등 불가하도록
<Location "/saveMoney/WEB-INF/*">
AllowOverride None
deny from all
</Location>

#해당 폴더는 수정등 불가하도록.
<Location "/saveMoney/META-INF/*">
AllowOverride None
deny from all
</Location>

3.workers.properties 작성
아파치 폴더(/etc/httpd)의 conf폴더에 workers.properties를 생성후</p>

workers.CATALINA_HOME=/etc/tomcat

workers.java_home=$JAVA_HOME

worker.list=worker1

worker.worker1.port=8009

worker.worker1.host=localhost

worker.worker1.type=ajp13

 요로케 연결해주면 됩니다.ㅋ</div>

이렇케 하면 가장 간단하게 mod_jk를 이용하여 아파치와 톰켓을 연결하여 사용할수 있습니다.</p>

 </span>4.Apach 재시작
#service restart를 통해서 재시작을 해보고 잘 연결되었는지 확인을 해보면 됩니다.ㅋ 
인제 포트 8080을 빼버리고 주소창으로 확인을 해보세요 ㅋ </div>