- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/pages/viewpage.action?pageId=26739703&
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
Apache HTTP 서버와 Tomcat서버의 연동
1. Apache와 Tomcat을 연동하는 이유
- Tomcat 서버는 본연의 임무인 서블릿 컨테이너의 역할만 하고, Apache HTTP Server는 웹서버의 역할을 하도록 각각의 기능을 분리하기 위해 연동을 할 수 있다.
- Apache HTTP Server에서 제공하는 편리한 기능을 사용하기 위해서 연동을 할수 있다.
- 대규모 사용자가 사용하는 시스템을 구축할 때 웹 서버인 아파치와 연동을 하면 부하 분산의 효과를 가질 수 있다. mod_jk의 Load Balancing과 FailOver 기능을 사용하여 안정적으로 운영 할 수 있다.
2. Apache와 Tomcat 연동하기
- 아래 내용은 윈도우 OS를 기준으로 설명하였다.
2.1 mod_jk 다운로드 및 설정
- http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/ 에서 버전에 맞는 파일을 다운 받아 $APACHE_HOME/modules 디렉토리에 복사한다.
- Apache HTTP 서버 2.2.x 버전을 설치하였다면 tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip 파일을 다운 받는다
- httpd.conf 파일의 LoadModule 부분에 mod_jk Module을 추가한다.
httpd.conf
# jk_module 추가 LoadModule jk_module modules/mod_jk.so
2.2 workers.properties 파일 설정
- apache와 tomcat를 연동하기위해서는 workers.properties 파일을 설정해야 한다.
- $APACHE_HOME/conf/workers.properties 파일을 아래 예제와 같이 생성한다.
- workers.properties 파일은 일반적으로 httpd.conf 파일과 같은 디렉토리에 위치하게 설정한다.
workers.properties
worker.list=sample # 톰캣 server.xml 파일 AJP/1.3 Connector의 Port를 입력한다. worker.sample.port=8009 # 톰탯 server 호스트 worker.sample.host=localhost # 아파치 + 톰캣 통신 프로토콜 worker.sample.type=ajp13
- ※참고 Tomcat Worker
- 톰캣 워커는(Tomcat worker) 웹서버로부터의 서블릿 요청을 톰캣 프로세스(Worker)에게 전달하여 요청을 처리하는 톰캣 인스턴스이다.
- 대부분 하나의 worker를 사용하나, load 밸런싱이나 site 파티셔닝을 위해 여러개의 worker를 사용 할 수 있다.
- 워커 타입에는 ajp12, ajp13, jni, lb 등이 있다.
2.3 workers.properties 경로 지정
- httpd.conf 파일에 workers.properties 파일 경로를 지정한다.
httpd.conf
# workers.properties 파일 추가 JkWorkersFile conf/workers.properties
2.4 VirtualHost 설정 변경
- $APACHE_HOME/conf/vhosts/extra/httpd-vhost.conf 파일의 VirtualHost의 DocumentRoot를 Tomcat 디렉토리로 변경하자
- JkMount 설정을 추가하자
httpd-vhost.conf 파일 설정
NameVirtualHost *:80 <VirtualHost *:80> ServerName test.apache.org DocumentRoot C:\dev\apache-tomcat-6.0.32webapps\ROOT # URL중 jsp로 오는 Request만 Tomcat에서 처리 함 # sample은 workers.properties에서 등록한 worker이름 JkMount /*.jsp sample # servlet 예제 실행을 위해서 추가 JkMount /examples/* sample </VirtualHost>
2.5 Tomcat의 server.xml 수정
- <Context> 태그의 docBase 디렉토리를 Apache HTTP Server 설정과 동일하게 Tomcat 서버의 webapps/ROOT 디렉토리를 절대경로로 지정하자.
원하는 디렉토리를 Document Root로 사용
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="C:\dev\apache-tomcat-6.0.32\webapps\ROOT" reloadable="true"/> .. </Host>
3. Apache HTTP Server와 Tomcat의 연동 테스트
- Apache와 Tomcat을 모두 restart 한 후 http://test.apache.org/ 로 접속해 보자
- 정상적으로 Tomcat 페이지가 실행되었다면 Servlet 예제가 실행되는지 테스트 해보자 http://test.apache.org/examples/servlets/
문서정보
- 이 문서는 구루비에서 작성하였습니다.
- 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 출처 : http://wiki.gurubee.net/pages/viewpage.action?pageId=26739703&
- 구루비 지식창고의 모든 문서는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.