본문 바로가기
TOMCAT/톰캣 아파치 연동

톰캣 아파치 연동

by 정윤재 2009. 11. 10.

다른 블로그를 돌아다니다 너무 잘 나와 있어서 포스팅 해 봅니다.

1.환경

     rh 9.x

     apache_1.3.34

     tomcat 5.0.28

     connector(mod_jk) - 1.2.15  jakarta-tomcat-connectors-1.2.15-src.tar.gz

     jdk 1.4.x

 

 

 

2. apache 설치

   - 압축해제    tar xvzf apache_1.3.34.tar.gz

   -  설치

      ./configure --prefix=/usr/local/apache  --enable-shared=proxy --bindir=/usr/bin

       --sbindir=/usr/sbin --libexecdir=/usr/local/apache/lib --logfiledir=/var/log/httpd

       --sysconfdir=/etc/httpd/conf --enable-module=so --enable-module=status

      --enable- module=info 

  

      make; make install;

 

3. jdk  설치 (binary)

  /usr/j2sdk-1_4_2_06-linux-i586.bin    하면 압축이 주루루 풀리면서

  j2sdk1.4.2_06 디렉토리 생김

 소프트 링크 걸어줌   ln -s j2sdk1.4.2_06/   java

 

4. tomcat(binary)  설치

 - group 및 user 생성  

   groupadd tomcat ; useradd  -g tomcat tomcat

 

  - tomcat 압축그냥 풀어주면됨 

 -  그리고 tomcat로 소프트 링크   

 - /usr/local/tomcat

 -   user tomcat 의 .bash_profile수정  /home/tomcat/.bash_profile

    export JAVA_HOME=/usr/java

    export CATALINA_HOME=/usr/local/tomcat
    export TOMCAT_HOME=/usr/local/tomcat

 

5. 아파치, tomcat 테스트

   아파치 실행후

   http://url    - 아파치 테스트페이지 나오면 정상

   톰캣 실행후

  http://url:8080  - 톰캣 테스트 페이지(못생긴 고양이) 나오면 정상

 

 6. 아파치 톰캣 연동위한 mod_jk 설치

  - 압축품  tar xvzf jakarta-tomcat-connectors-1.2.15-src.tar.gz

 -  jakarta-tomcat-connectors-1.2.15-src/jk/native 위치로 이동

 - ./configure --with-apxs=/usr/sbin/apxs    

         =/usr/sbin/apxs      이 경로는 apache설치할때 --sbindir 여기에 지정된 위치

 -  make 

 -  jakarta-tomcat-connectors-1.2.15-src/jk/native/apache1.3 으로 이동

 - mod_jk.so 파일 확인

 -  cp mod_jk.so   /usr/local/apache/lib/

     /usr/local/apache/lib/ 위치는  apache설치할때  --libexecdir 에 지정된 위치

 

 7. httpd.conf 수정 및 work.propeties 생성

   httpd.conf파일에  다음과 같이 추가

 

 

  

        JkWorkersFile /etc/httpd/conf/workers.properties
        JkLogFile /var/log/httpd/mod_jk.log
        JkLogLevel info
        JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
        # JkOptions indicate to send SSL KEY SIZE,
        JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
        # JkRequestLogFormat set the request format
        JkRequestLogFormat "%w %V %T"
        # Send JSPs for context /jsp-examples to worker named default

 

        JkMount /*.jsp default
        Alias  "/"   "/usr/local/tomcat/webapps/ROOT/"

 

        JkMount /jsp-examples/*.jsp default
       Alias /jsp-examples "/usr/local/tomcat/webapps/jsp-examples/"

 

        JkMount /servlets-examples/* default
        Alias /servlets-examples "/usr/local/tomcat/webapps/servlets-examples/"

<Directory "/usr/local/tomcat/webapps/ROOT/">
        Options FollowSymLinks
        AllowOverride None
        Allow from all
</Directory>

<Directory "/jsp-examples">

        Options FollowSymLinks
        AllowOverride None
        Allow from all
</Directory>

 

 DirectoryIndex 지시자에 index.jsp 추가

DocumentRoot /home/httpd/html      - 아파치 웹페이지 루트디렉토리

 

 

- work.propeties 내용

 

workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/java
ps=/
worker.list=default

worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

 

 

8.  아파치 톰캣 연동테스트

 http://url 해서  톰캣기본페이지(못생긴고양이) 나오면 성공

 

 

 

9. 1~8까지 작업이 성공적으로 끝나면 한가지 의문점

    아파치와 톰캣의 연동 가장 큰(?) 목적은 static page(html등) 는 apache에서처리하고

   dynamic page(jsp등) 는 톰캣에서 처리하는데 있다 그런데 1~8번까지의 과정을 거치면

   모든 소스 (static, dynamic) 는 톰캣의 소스 기본위치인

   /usr/local/tomcat/webapps/ROOT 에 놓여야한다

   만일 apache의 DocumentRoot 에 /home/httpd/html 이라고하고

   이 위치에 test.html페이지를 넣고

 http://url/test.html  을 해보면   404error 즉 file not found error가 나올것이고

  아파치의 error_log를 보면

  /usr/local/tomcat/webapps/ROOT/test.html 을 찾는것을 확인할수 있다.

 

이 문제를 해결하기 위해 apache 의 viturlhost 기능을 이용한다

httpd.conf에 다음과 같이 추가

 

<VirtualHost *:80>
ServerName aaa.co.kr 
DocumentRoot /home/httpd/html


# Use SetEnvIf to st no-jk when /home/ is encountered
SetEnvIf Request_URI "/*" no-jk

Alias / /home/httpd/html/

 

<Directory "/home/httpd/html">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

이렇게 하고 아파치 재시작

http://url/test.html 하면 apache의 DocumentRoot  에 위치한

/home/httpd/html/test.html 을 보여주고

 

http://url/index.jsp하면 톰캣의 DocumentRoot,에 위치한

/usr/local/tomcat/webapps/ROOT/index.jsp 를 보여줌을 확인할수 있다

 

--끝


'TOMCAT > 톰캣 아파치 연동' 카테고리의 다른 글

아파치 설치시 ssl 설치 (https 접속)  (0) 2012.06.04
아파치 톰캣 연동 (리눅스)  (14) 2010.03.11

댓글