[Ubuntu Diary] Apache - Tomcat 연동설정

안녕하세요. 
오늘은 얼마전 설치한 Apache 웹서버와 Tomcat을 연동하려고 합니다. 

그에 앞서 일단 현재 Apache의 서버이름이 기본설정값인 localhost로 되어 있으니, 이것을 다른 이름으로 변경하고서 연동을 해봐야 겠네요. 

1. 먼저 설정파일을 열어줍니다. 

   polaris@sungsik81:/etc/apache2$ vi httpd.conf


2. 아무런 설정내용이 없네요. 아래의 내용 한줄만 기재해 주겠습니다. 

  ServerName vartist.org


3. 파일을 저장하고, 아래의 명령으로 웹서버를 재기동 합니다. 

   apachectl -k restart


4. 상태를 체크합니다. 

   netstat -ntl


위 1~4번까지의 처리로 서버명 설정을 완료가 되었습니다. 
아래 내용부터는 Apache웹서버와 Tomcat간 연동설정에 대한 내용입니다. 

1. Apache 및 Tomcat을 다운로드 받습니다. 

2. Tomcat에서 Connector 연결설정을 합니다. 아래 경로의 파일을 열어줍니다. 

  root@sungsik81:/var/www# vi /var/lib/tomcat7/conf/server.xml


3. 아래 내용의 주석처리된 부분을 찾아 주석을 해제합니다. 

     <!-- Define an AJP 1.3 Connector on port 8009 -->

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


4. 수정된 문서를 저장하고 나옵니다. 

5. 아래 명령을 통해 proxy_AJP 모듈을 활성화 요청하지만, a2endmod 명령이 없다고 하네요. 

  root@sungsik81:/var/www# a2endmod proxy_ajp

  No command 'a2endmod' found, did you mean:

  Command 'a2enmod' from package 'apache2.2-common' (main)

  a2endmod: command not found


6. 처리에 필요한 모듈을 다운로드 및 설치하겠습니다. 

   root@sungsik81:/var/www# apt-get install apache2.2-common apache2-utils


7. 위 5번에 수행한 명령을 다시 실행합니다. 
   의존성 체크를 하더니, 서버를 재시작하라고 하라기에 그렇게 처리해 줍니다. 

 Considering dependency proxy for proxy_ajp:
  Enabling module proxy.
  Enabling module proxy_ajp.
  To activate the new configuration, you need to run:
        service apache2 restart

  root@sungsik81:/# service apache2 restart

        * Restarting web server apache2                       ... waiting .                            [ OK ]


8. 다시 실행해보니, 활성화가 되었다는 메시지를 확인할 수 있습니다. 

  root@sungsik81:/# a2enmod proxy_ajp

  Considering dependency proxy for proxy_ajp:

  Module proxy already enabled

  Module proxy_ajp already enabled 


9. 이제 설정파일에 내용을 수정해보겠습니다. 아래 문서를 열어주세요. 

   root@sungsik81:/# vi /etc/apache2/sites-available/default


10. 아래와 같은 내용으로 수정합니다. (한글주석을 무시해도 됩니다)

        DocumentRoot /var/lib/tomcat7/webapps/ROOT

        <Directory />

                Options FollowSymLinks

                AllowOverride None

        </Directory>

        <Directory /var/lib/tomcat7/webapps/ROOT>

                Options Indexes FollowSymLinks MultiViews

                AllowOverride None

                Order allow,deny

                allow from all

        </Directory>

 

        #Apache의 DocumentRoot와 Tomcat의 webapps/ROOT를 같은 곳을 바라보게 설정

        ProxyPass /servlet/ ajp://localhost:8009/servlet/

        ProxyPassMatch ^/.*\.(jsp|do)$ ajp://localhost:8009


11. 위 문서를 저장하고 나온 뒤, Tomcat 루트 디렉토리로 이동하여 JSP 파일을 생성해 봅니다. 

  root@sungsik81:/var/lib/tomcat7/webapps/ROOT# vi hello.jsp

 

  <HTML>

  <BODY>

     Hello!  The time is now <%= new java.util.Date() %>

  </BODY>

</HTML>


12. Apache와 Tomcat을 재시작합니다. 

  root@sungsik81:/var/lib/tomcat7/webapps/ROOT# /etc/init.d/tomcat7 restart

   * Stopping Tomcat servlet engine tomcat7                                                                 [ OK ]

   * Starting Tomcat servlet engine tomcat7                                                                   [ OK ]

  root@sungsik81:/var/lib/tomcat7/webapps/ROOT# /etc/init.d/apache2 restart

   * Restarting web server apache2                                                     ... waiting .         [ OK ] 


13. 웹브라우저를 통해 80포트를 통한 JSP 파일이 잘 출력되는지 확인합니다. 

   http://도메인 또는 IP/hello.jsp