강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스마스터1급 : Apache와 Tomcat 연동하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: ApacheTomcat 연동하기

 

 

 

 

이제 Apache 웹서버와 Tomcat을 연동해 보도록 하자. TomcatTomcat 만으로 웹서버역할을 하지만, 앞에서 설명한 성능향상과 보안 때문에 웹서버와 Tomcat은 분리하는 경우가 대부분이다.

 

 

 

웹브라우저에서 "jsp"확장자의 파일을 호출 했을 때 TomcatAJP포트를 통해 Tomcat과 연동하여 보도록 하자.

 

ApacheTomcat을 연동하기 위한 방법은 여러가지가 있다.

 

 

 

그중 가장 많이 사용하고 안정적인 mod_jk 모듈을 사용하여 연동해 보자.

 

 

 

mod_jkApache에 모듈로 설치

 

mod_jk 또한 tomcat.apache.org에서 받을 수 있다.

 

 

 

다운로드 후 다음과 같이 압축을 풀고, 프로그램 소스 디렉토리로 이동한다.

 

 

 

 

 

 

 

 

 

[root@SULinux-64Bit src]# tar xvfp tomcat-connectors-1.2.37-src.tar.gz

tomcat-connectors-1.2.37-src/

tomcat-connectors-1.2.37-src/conf/

tomcat-connectors-1.2.37-src/conf/workers.properties.minimal

tomcat-connectors-1.2.37-src/conf/uriworkermap.properties

tomcat-connectors-1.2.37-src/conf/httpd-jk.conf

tomcat-connectors-1.2.37-src/conf/workers.properties

tomcat-connectors-1.2.37-src/native/

tomcat-connectors-1.2.37-src/native/apache-2.0/

tomcat-connectors-1.2.37-src/native/apache-2.0/bldjk.qclsrc

== 이하 생략 ==

[root@SULinux-64Bit src]# cd tomcat-connectors-1.2.37-src/native/

 

 

 

 

 

 

모듈 컴파일 및 설치를 위해 환경설정 및 환경 점검을 한다.

 

 

 

 

 

 

 

 

 

[root@SULinux-64Bit native]# ./configure --with-apxs=/usr/local/apache/bin/apxs

checking build system type... x86_64-unknown-linux-gnu

checking host system type... x86_64-unknown-linux-gnu

checking target system type... x86_64-unknown-linux-gnu

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking for test... /usr/bin/test

checking for grep... /bin/grep

checking for echo... /bin/echo

checking for sed... /bin/sed

checking for cp... /bin/cp

checking for mkdir... /bin/mkdir

== 이하 생략 ==

 

 

 

 

 

 

 

"--with-apxs"인자로 아파치 웹서버의 apxs 명령어가 있는 곳을 지정해 준다.

 

 

 

 

모듈 컴파일

 

 

 

 

 

 

[root@SULinux-64Bit native]# make -j 4

Making all in common

make[1]: Entering directory `/usr/local/src/tomcat-connectors-1.2.37-src/native/common'

/usr/local/apache/build/libtool --silent --mode=compile gcc -I/usr/local/apache/include -DHAVE_CONFIG_H -g -O2 -pthread -DHAVE_APR

-I/usr/local/apache/include -I/usr/local/apache/include -DHAVE_CONFIG_H -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -c jk_ajp12_worker.c

-o jk_ajp12_worker.lo

/usr/local/apache/build/libtool --silent --mode=compile gcc -I/usr/local/apache/include -DHAVE_CONFIG_H -g -O2 -pthread -DHAVE_APR

-I/usr/local/apache/include -I/usr/local/apache/include -DHAVE_CONFIG_H -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -c jk_connect.c -o jk

_connect.lo

=== 이하 생략 ===

 

 

 

 

 

 

 

make 명령어로 모듈을 컴파일하며, "-j 4" 옵션으로 4개의 잡으로 나눠 컴파일 하여 컴파일 속도를 높인다.

 

 

 

 

 

모듈 설치

 

 

 

 

 

[root@SULinux-64Bit native]# make install

Making install in common

make[1]: Entering directory `/usr/local/src/tomcat-connectors-1.2.37-src/native/common'

make[1]: `install'를 위해 할 일이 없습니다

make[1]: Leaving directory `/usr/local/src/tomcat-connectors-1.2.37-src/native/common'

Making install in apache-2.0

make[1]: Entering directory `/usr/local/src/tomcat-connectors-1.2.37-src/native/apache-2.0’

=== 이하 생략 ===

 

 

 

 

 

 

 

컴파일된 모듈(mod_jk.so)을 아파치 웹서버의 modules 디렉토리에 설치해 준다.

 

 

 

 

 

아파치 웹서버와 톰켓을 연동하는 mod_jk 모듈을 설치 하였다면, 아파치 웹서버 설정을 한다.

 

 

 

아파치 웹서버 설정파일(httpd.conf)의 가장 아랫쪽에 다음 내용을 추가한다.

 

 

 

 

 

 

 

 

 

LoadModule jk_module modules/mod_jk.s

<IfModule mod_jk.c>

JkWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel error

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

JkRequestLogFormat "%w %R %V %T %U %q"

 

JkMount /*.jsp tomcat

</IfModule>

 

 

 

 

위 내용은 "LoadModule"지시자를 사용하여 jk_module을 로드 한다.

 

 

 

만약 모듈이 로드 되었다면, "JkWorkersFile" 지시자로 Works에 대한 설정파일을 명시하고, "JkLogFile" 지시자로 로그 파일 경로를 설정한다.

 

 

 

"JkLogLevel"으로 로그 레벨을 설정한다.

 

 

 

"JkLogStampFormat"는 로그를 남길때 날짜 및 시간에 대한 포맷지정이며, "JkRequestLogFormat"는 아파치 웹서버와 비슷하게 요청에 대한 로그 포멧을 지정한다.

 

 

 

다음으로 "JkMount" 지시자를 사용하여 "jsp" 확장자를 가진 파일에 대해 "tomcat"워커와 마운트 한다는 의미이며 “tomcat"워커에 대한 설정은 workers.properties파일에 설정된다.

 

 

 

 

workers.properties 파일

 

 

 

 

worker.list=tomcat

worker.tomcat.type=ajp13

worker.tomcat.host=localhost

worker.tomcat.port=8009

 

 

 

 

 

위 내용을 아파치 설정파일(httpd.conf)과 동일한 위치에 workers.properties 파일에 작성한다.

 

 

 

"worker.list" 지시자는 워커리스트를 나열하며, "worker.워커.type" 워커와 연결할 커넥터 방식을 "ajp13"으로 한다는 것이다.

 

 

 

"worker.워커.host"Tomcat이 설치된 서버의 IP이며, "worker.워커.port"TomcatAJP 커넥터 포트를 설정한다.

 

 

 

 

아파치 웹서버와 Tomcat을 연동하는 mod_jkContext별로 다른 Tomcat을 설정하거나, 부하분산을 할 수 있는 기능을 제공한다.

 

 

 

자세한 내용은 "http://tomcat.apache.org/connectors-doc/"을 참조하기 바란다.

 

 

 

 

 

위와 같이 mod_jk 모듈을 설치하고, 아파치 설정파일을 수정하고 workers.properties파일을 작성하였다면, 설정 적용을 위해 아파치 웹서버를 재시작한다.

 

 

 

 

아파치 웹서버와 톰켓의 연동 확인을 위해 다음과 같이 tomcattest.jsp 프로그램을 작성해 테스트 해 보겠다.

 

 

 

톰켓의 기본 문서 경로는 톰켓설치경로/webapps/ROOT/"이다.

 

 

 

위에서 설치한 톰켓의 기본 문서 경로는 "/usr/local/apache-tomcat-7.0.40/webapps/ ROOT/"이다.

 

 

 

이 디렉토리에 다음과 같이 ”tomcattest.jsp" 파일을 만들었다.

 

 

 

 

 

 

 

 

 

<%

out.println("Hi!! JSP<br>");

for(int i=1;i<10; i++){

out.println("Jsp Test "+i+"<br>");

}

%>

 

 

 

 

 

프로그램 내용은 "Hi!! JSP"를 출력하고, 1부터 9까지 반복하며 “Jsp Test 숫자를 출력하는 간단한 JSP 프로그램이다.

 

 

 

 

웹브라우저에서 호출한 결과는 다음과 같다.

 

 

 

 

 

7ce9390993b6024bf1a77eac34869b85_1686894555_4191.png
 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  100 명