서버운영일지

[Ubuntu Diary] Apache - Tomcat 연동설정

농사꾼봉팔 2013. 3. 30. 10:26

안녕하세요. 
오늘은 얼마전 설치한 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