이 글은 2006년 6월경 쓴 글을 옮겨온 것이다.

아파치2.2와 톰캣5.5의 연동(Apache2.2 & Tomcat5.5 & mod_jk)

이 문서는 windows XP 환경에서 아파치(Apache)의 모든 버젼과 톰캣(Tomcat)을 연동하여
JSP 개발자의 개발환경을 구축하는데 그 목적을 둔다.
또한, 아파치와 톰캣의 용도를 모른다면 이 문서를 볼 필요는 없다.

문서의 수정
1차 2006년 7월 27일
2차 2007년 3월 20일

웹상에서 배포하는 문서에 따라서 아파치, IIS, 기타 웹서버와 톰켓을 연동하는데
필요한 자료를 많이 구할 수 있으나 본 문서에서는 아파치 2.2와 톰캣 5.5의 연동을
목표로 한 바 그에 대한 내용만을 우선적으로 기술하고 시간적 여유가 있으면
다른 내용을 기술하도록 하겠다.

1.필요한 소프트웨어
1-1. RWAPM
아파치, PHP, MySQL 등을 하나로 묶어 컴파일한 소프트웨어로 http://kldp.net/projects/rwapm/에서
배포되는 최신 버전을 다운 받는다.
APMSetup이라는 프로그램도 있었던 것으로 기억되는데 아주 오래전 사용한 후
아직까지 사용하지 않아서 구체적인 사항은 알 수가 없다.

물론 수동으로 모든 것을 설치하기 원한다면 http://www.apache.org에서
배포하는 아파치를 받아서 설치하도록 한다.

또한 패키징된 프로그램으로 Apache2triad가 있는데 이에는 아파치, PHP, Perl, MySQL등이
포함되어 있으므로 유용하게 사용할 수 있다.
http://apache2triad.net/
http://sourceforge.net/project/showfiles.php?group_id=93507

1-2. Java
Java는 Sun Microsystems, Inc에서 배포하고 있으며 http://java.sun.com/javase/downloads/index.jsp 에서 찾아보면 JDK 6을를 찾을 수 있고
2007년 3월 20일 현재 JDK 6을 받아서 설치할 수 있다.
http://java.sun.com/ 뿐만 아니라 국내 여러 사이트에서도 배포하고 있으므로
검색사이트에서 검색하여 쉽게 Java를 설치할 수 있다.

1-3. Tomcat
JSP를 웹에서 구현하기 위하여 필요한 서버중 하나다.
Java를 사용하는 웹서버가 몇 종류 있었으나(최근에는 확인하지 않았다.) 톰캣만큼 많이 사용되는 것은
없는 것으로 보인다.(나는 자바 전문이 아니기 때문에…)
톰캣은 http://tomcat.apache.org/ 에서 최신 버전을 구할 수 있다.
참고로 아파치 1.3 버전이나 2.0 버전을 사용한다면 http://tomcat.apache.org/ 의
좌측에서 Download를 보면 Tomcat Connectors가 있고 그 링크를 찾아 보면 mod_jk 파일을 찾을 수 있다.
참고)2006년 7월 26일로 mod_jk 1.2.18 버전을 다운 받을 수 있다.

1-4. mod_jk
아파치와 톰캣을 연결하기 위하여 필요한 파일로 이에 대한 설명은 설치과정에서 다시 하도록 하겠다.
우선 윈도우용 mod_jk 모듈을 다운 받아야 하는데 위에서 적은 http://tomcat.apache.org/ 에서
구할 수 있으나 이 글의 요지처럼 아파치 2.2 버전에 적합한 mod_jk를 구할 수가 있다.
또한 첨부된 파일에도 찾아 보면 mod_jk를 구할 수 있다.


2. 설치
2-1. Java의 설치
오늘 확인한 바로는 Java 6.0이 발표되었으며 그 속도가 무자비하게 빠르다고 한다.
(사용해 보지 않았는데, 지금 설치하고 확인할 것이다.)
JDK 6은 SE 버전으로 http://sun.com 에서 구할 수 있고 또 쉽게 설치되며 기본 옵션에 따라 설치해도 무방하다.
다만 설치를 마치면 내컴퓨터 ==> 마우스 오른쪽버튼 ==> 속성 ==> 시스템정보에서 ==> 고급 ==> 환경변수
(제어판에서도 시스템을 찾으면 같은 내용을 볼 수 있다.)
위와 같이 환경변수를 클릭하여 열리는 창에서 사용자 변수든, 시스템 변수든 하나만
Path를 찾아 편집을 클릭하고 마지막에 ;(세미콜론)을 넣어주고 자바가 설치된 경로를 넣어준다.
예를 들어 C:\Program Files\Java\jdk1.6.0에 설치되었다면 Path의 내용에 ;를 넣고 그 다음에
C:\Program Files\Java\jdk1.6.0을 넣어 주면 된다.

2-2. RWAPM의 설치
RWAPM은 아파치와 PHP 그리고 MySQL을 하나로 결합하여 컴파일 한 것이다. 이전의 RWAPM에서는
바로 C드라이브에 압축을 풀었는데 오늘 받아서 설치한 RWAPM은 그곳에 압축이 풀렸다.
아마도 제작자가 압축 해제 경로를 지정하지 않은 것으로 보인다.
압축을 풀었으면 RWAPM을 필요한 곳으로 이동한다. 만약 C 드라이브가 아니라면 RWAPM을 이동한 후
환경 설정 파일에서 경로를 적절하게 수정해 주어야 한다. 그리고 RTM20040531 의 bin 디렉토리에서
ApacheMonitor.exe를 바탕 화면에 바로가기를 만들어서 쉽게 실행할 수 있도록 한다. ApacheMonitor는 아파치의 구동과 중지및 그 상태를 확인하는
프로그램으로 트레이 아이콘으로 동작한다.
자세한 것은 RWAPM 디렉토리의 매뉴얼을 참고 하길 바란다.

또한 디렉토리 내부의 파일을 확인하기 원한다면 RTM20040531 의 conf 디렉토리의
httpd.conf를 편집기(메모장 등의 편집기)로 열어서 169행 부근을 보면 Options 항목이 있는데,
다음과 같이 Indexes 를 적어준다.
나는 Indexes 외에도 FollowSymLinks MultiViews 를 추가 하였다.
DocumentRoot "C:/RWAPM/www"
<Directory "C:/RWAPM/www">
#SetOutputFilter DEFLATE
Options Indexes FollowSymLinks MultiViews Includes ExecCGI

2-3. Tomcat의 설치
받아둔 톰캣 설치프로그램을 사용하여 기본적인 경로로 설치해도 되지만 관리를 편하게 하기 위하여
RWAPM이 설치된 경로에 톰켓을 설치하도록 한다. 그 방법은 설치 단계에서 경로를 바꿀 수 있으므로
첨부된 이미지의 설치과정을 참고하여 설치하도록 한다.

2-4. 설치 확인
이미 아파치의 경우 ApacheMonitor를 실행하여 트레이 아이콘으로 아파치의 작동상태를 확인할 수 있고
톰캣의 경우도 또한 트레이 아이콘이 동작하지 않는다면 시작 ==> 프로그램 ==> Apache Tomcat ==>
Monitor Tomcat을 시작하면 톰캣의 동작도 트레이 아이콘으로 확인할 수 있다.
트레이 아이콘으로 두 서비스가 동작이 되지 않는다면 트레이 아이콘을 마우스로 클릭하여
각각의 서비스를 시작한다.(서비스가 시작되면 파란색 화살표가 보인다)
만약 아파치의 서비스가 실행이 되지 않는다면 RWAPM 디렉토리의 "apache서비스등록"을
실행한 다음 다시 서비스를 시작하도록 한다.
톰캣의 서비스가 실행되지 않는다면 설치중 문제가 발생한 것이므로 톰캣을 삭제하고 다시 설치하도록 한다.
서비스가 실행되는 것이 확인되었으면 웹 브라우저를 열어서 URL에 http://localhost 를 입력한다.
아파치가 정상적으로 설치되었다면 브라우저에 설치된 내용이 보일 것이다. 또한 톰캣을 확인하기 위하여
URL에 http://localhost:8080 을 입력하여 코요테가 나오는 톰캣의 첫 화면이 보인다면 모두 정상적으로
설치된 것이다.

3. Apache와 Tomcat의 연동
톰캣은 그 자체만으로 웹서비스를 하기에는 무리가 따른다. 또한 JSP 개발자는 톰캣만 사용해도 되지만
PHP, ASP 등의 개발을 동시에 하기에는 어렵다 하겠다.
아파치와 톰캣을 연결하는 방법은 여러가지가 있다.
(1)WARP 커넥터
이 방법은 초기에 많이 사용한 방법으로 아파치 1.3 버전에서 mod_webapp 모듈을 사용하여 연결을 하였으나
최근에는 사용되지 않는 방법이기도 하다.
(2)JServ 커넥터
이 방법은 초기에 유닉스(리눅스)에서 아파치 1.3 버전과 톰캣을 연결하기 위하여 사용하였는데 윈도우용으로
개발된 모듈도 있으나 이도 최근에는 지원되지 않는 방법이다.
(3)coyote 커넥터
코요테를 이용하는 방법으로 이 방법도 최근에는 권장되지 않는 방법이다.
(4)jk 커넥터
최근들어 가장 활발하게 사용하는 방법이고 아파치와 톰캣의 연동은 이 방법으로 연결하게 된다.
(5)jk2 커넥터
jk 커넥터를 새로이 개발된 커넥터이고 성능도 우수하다고 하지만 jk 커넥터가 보다 유용하게 사용되고
또한 아파치 그룹에서도 개발이 jk 보다 뒤로 밀려 있는 상태이다.

jk 커넥터를 이용한 아파치와 톰캣의 연동
우선 다운받은 파일의 압축을 풀고 보면 다음과 같은 mod_jk 파일이 있다.
mod_jk-apache-1.3.so : 아파치 1.3 버전용
mod_jk-apache-2.0.so : 아파치 2.0 버전용
mod_jk-apache-2.2.so : 아파치 2.2 버전용
mod_jk-apache-2.2.4so : 아파치 2.2.4버전용(어떻게 다른지는 모르나
Coyote에 있는 모듈을 같이 압축하였다.
아파치의 버전에 맞는 jk 커넥터를 선택하여 아파치가 설치된 경로의 아파치 모듈이 있는 곳
(예를 들면 C:\RWAPM\Apache\modules)에 복사한 다음 mod_jk.so로 이름을 바꾸어 놓는다.

이제는 아파치의 환경설정 파일인 httpd.conf를 아파치가 설치된 경로의 conf 디렉토리에서 찾아서
편집기로 열도록 한다. 예를 든 환경설정은 RWAPM에서 수정한 것이므로 행번호가 다를 수 있다.

90행 부근에 LoadModule jk_module modules/mod_jk.so을 추가 한다.
(다른 경우에는 LoadModule을 찾아서 마지막 부근에 추가해 주면 된다.)

또한 예는 215행 부근에 다음을 추가하였는데 <IfModule …> … </IfModule>내부만 아니면
적당한 곳에 넣어주면 된다.
여기에서 tong 이라는 이름은 적당한 이름을 사용하면 되고 이 이름은 workers.properties (다른 이름이면 어떠한가?)
파일에서
다시 사용되므로 무난한 이름을 사용하면 될 것이다.

<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkLogFile logs/jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkMount /*.jsp tong
JkMount /servlet/* tong
</IfModule>

위와 같이 아파치의 환경설정 파일(httpd.conf)을 수정하였으면 다음의 내용을 workers.properties라는
파일로 만들어 아파치가 설치된 경로의 conf 디렉토리에 저장한다.
worker.list=tong
worker.tong.type=ajp13
worker.tong.host=localhost
worker.tong.port=8009

위의 과정을 마쳤다면 아파치를 다시 시작한다.
시작하면서 오류가 보이지 않고 정상적이라면 환경설정이나 jk 모듈을 로딩하는데 이상이 없으나
오류 메세지가 보인다면 아파치 버전과 jk 모듈의 버전, 그리고 오타 등의 내용을 확인해 본다.

정상적으로 아파치가 동작한다면 이제 브라우저를 열고 URL에 다음 주소를 넣고 확인해 보자.
http://localhost/index.jsp

톰캣을 열였던 그 내용이 브라우저로 보인다면 정상적으로 연결된 것이다.
(아마도 이미지는 보이지 않을 것이다.)

세부적으로 설정할 내용은 기회가 된다면 다음에 기술하도록 하겠다.

아파치2.2와 톰캣5.5의 연동(Apache2.2 & Tomcat5.5)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다