....

Apache와 Tomcat 연동 설정.. 본문

Linux

Apache와 Tomcat 연동 설정..

idkook 2010. 1. 11. 15:50

이 글은 이전 CentOS 5.3에서 Java와 Tomcat 설치 - Tomcat을 서비스로 관리하기 와 연결된다.

기본적으로 SVN을 설치했고..
 Trac을 설치했고..
Apache를 yum으로 설치했고..
Apache를 통해서 SVN과 Trac을 사용하도록 했고...
OpenSSL을 이용해서 SVN, Trac을 사용하도록 감싸고...
이 Apache에 Tomcat까지 연동시키고자 한다...

mod_jk를 이용한 방법과 proxy를 이용한 방법이 있는데..
mod_jk를 이용한 방법으로 설치하고자 한다.

Apache Tomcat Connector를 다운 받는다.
(
http://tomcat.apache.org/connectors-doc/)
마침 새로나온 JK-Connector가 1.2.28이다...
binaries - linux - jk-1.2.28 - i586 - mod_jk-1.2.28-httpd-2.2.X.so 를 다운 받았다.
( 다운받기 )

cd /etc/httpd/modules
wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.28/i586/mod_jk-1.2.28-httpd-2.2.X.so
ln -s mod_jk-1.2.28-httpd-2.2.X.so mod_jk.so

파일명에 포함된 버젼 정보를 제거하는건 정말 안좋아한다.
그렇다고.. 버젼이 바뀔따마다 설정파일을 찾아다니면서 바꾸는것도 안좋아한다.
그래서 버젼이 포함된 파일을 두고.. 그 파일을 심볼릭링크로 설정하는 방식을 선호한다.

아래 내용을 /etc/httpd/conf/httpd.conf 에 추가한다.
LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
 JkWorkersFile conf.d/workers.properties
 JkMountFile conf.d/workers_uri.properties
 JkShmFile  logs/mod_jk.shm
 JkLogFile  logs/mod_jk.log
 JkLogLevel  info
 JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
</IfModule>

httpd.conf에서 SSL서비스를 담당하고 있는 VritualHost 태그 내부에 JkMount를 이용하면 Tomcat의 어플리케이션 관리 페이지들을 SSL만을 이용해서 접속할 수 있도록 숨길 수 있다.
<VirtualHost *:443>
.... 
 JkMount /manager ajp
 JkMount /manager/* ajp
 JkMount /host-manager ajp
 JkMount /host-manager/* ajp
 JkMount /docs  ajp
 JkMount /docs/*  ajp
....
</VirtualHost>

아파치에서 처음 Welcome페이지 설정 부분에 jsp 확장자도 추가한다.
이 부분을 설정하지 않으면 index.jsp 페이지를 web.xml 에서만 설정하고 왜 안뜨냐고 투덜대는 자신을 발견하게 된다.
하는 김에 apache의 기본 홈 경로도 /var/www/html 에서 톰캣의 루트 경로로 바꿔본다.
DirectoryIndex index.jsp index.html index.html.var

#DocumentRoot "/var/www/html"
DocumentRoot "/usr/local/tomcat/webapps/ROOT"

workers.properties 파일도 만든다.
vi /etc/httpd/conf.d/workers.properties

### 파일 내용 시작
worker.list=ajp
worker.ajp.port=8009
worker.ajp.host=localhost
worker.ajp.type=ajp13
worker.ajp.lbfactor=1
worker.ajp.socket_timeout=10
#worker.ajp.cachesize=1   #취향따라... 선택
### 파일 내용 끝

workers_uri.properties 파일도 만든다.
vi /etc/httpd/conf.d/workers_uri.properties

### 파일 내용 시작
/*.do=ajp
/*.jsp=ajp
### 파일 내용 끝

tomcat의 메니져 페이지에 접속할 계정을 추가한다.
vi $CATALINA_HOME/conf/tomcat-users.xml
### 파일 내용 시작
<tomcat-users>
  <user name="admin" password="사용할 암호" roles="admin,manager" />
   .....
</tomcat-users>
### 파일 내용 끝

아파치를 재시작할때 mod_jk가 잘 올라오는지 확인해볼 차례다..
아파치와 톰캣을 재시작 하고 페이지에 접속해본다.
service httpd restart
service tomcat restart

https://localhost 페이지에 접속하면 아파치 시작화면이 아닌 톰캣의 시작화면이 반겨준다..
좌측의 Manager 링크를 클릭해서 추가한 관리자 계정으로 로그인까지 된다면.. 무사히 설정이 완료된 것..

형상관리 서버에 tomcat을 연동할려고 악을 쓴 이유는...
이곳에 Nexus서버도 올리기 위해서다... ㅎㅎ
Comments