아파치 와 톰캣7.0(Tomcat 7.0) 을 연동시키는 방법에 관한 글입니다. 많은 분들이 당연히 연동 시켜야 한다고 
생각할지 모르지만 톰캣 자체에 웹서버가 포함되어 있기 때문에 꼭 해줄 필요는 없습니다. 

그렇다면 왜 해주는 것인가? 하는 의문이 들 수 있습니다. 톰켓 자체는 서블릿과 JSP 해석에 일을 집중시키고 아파치 자체는 html 과 그외 나머지 리소스를 처리하게 해주는 식으로 분산 시켜주는 효과가 있습니다. 고작 저 따위 이유로  많은 분들이 설정하느라고 고생한다고 합니다. 

그래서 손쉽게 따라하기로 연동시켜보기로 합니다. 

1. 아파치 설치하기 

$ sudo apt-get install apache2


2. 톰캣 설치하기 

$ sudo apt-get install tomcat7 tomcat7-docs tomcat7-admin tomcat7-examples


  설치해두면 언젠가는 쓸모가 있으니 한꺼번에 설치해줍니다. 

3. 제대로 설치됐는지 확인해보기 

   http://localhost  와 http://localhost:8080 

  으로 페이지가 제대로 뜨는지 확인해 줍니다. 만약 페이지가 제대로 뜬다면 apache2 와 tomcat7 은 제대로 설치된 것입니다. 

4. 톰캣 과 아파치를 연결시켜주는 커넥터(Connector) 설치하기

$ sudo apt-get install libapache2-mod-jk


5. 커넥터 설정 

$ sudo emacs /etc/libapache2-mod-jk/workers.properties


   로 열어서 안의 내용을 보면 

workers.tomcat_home=/usr/share/tomcat6


   이것을 실제로 톰캣이 깔려 있는 곳으로 바꾸어 줍니다. tomcat7 에는 

  workers.tomcat_home=/var/lib/tomcat7


  로 바꼈습니다. 그리고 worker.list=ajp13_worker 이 항목을 기억하셔야 합니다. 

6. 톰캣 에서 커넥터와 연결시키기 

$ sudo emacs /var/lib/tomcat7/conf/server.xml 


   에서 


       <!-- Define an AJP 1.3 Connector on port 8009 -->
       <!--
       <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
       -->


   로 되어 있는 부분에서 주석을 제거해서 

 

     <!-- Define an AJP 1.3 Connector on port 8009 -->
       <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


   로 변경합니다. 이것은 포트 8009 로 날라오는 프로토콜(protocol)이 AJP/1.3 인 것은 8443 포트로 넘기라는 것입니다.  8443은 톰캣 서버가 처리를 하는 포트라고 보시면 됩니다. 
 

7. 아파치 에서 톰캣 연결시키기 

$ sudo emacs /etc/apache2/sites-available/default 


   이 부분에 대한 언급이 없어서 제일 어려웠던 부분입니다. 위의 파일을 열어서 


 

       DocumentRoot /var/www
  <Directory />
    Options FollowSymLinks
AllowOverride None
  </Directory>
  <Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
 </Directory>


  인 부분을 찾아서 


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>

    JKMount /*.jsp ajp13_worker


 로 바꾸어 줍니다. 즉 /var/www 을 /var/lib/tomcat7/webapps/ROOT 로 바꾸어 주는 것입니다. 그리고 아래쪽에 

 JKMount /*.jsp ajp13_worker 

를 추가해줍니다. 부연 설명을 하자면 아파치(apache)가 바라보고 있는 DocumentRoot 와 톰캣이 바라보고 있는 webapps/ROOT 를 같은 곳을 바라보게 해주는 것입니다. 그리고 맨 아래에 추가해 준것은 jsp 로 끝나는 파일은 ajp13_worker 를 통하라는 뜻인데  ajp13_worker 를 통해서 톰캣으로 전송하는 것입니다. 

8. 테스트페이지를 만들어 봅니다. 

$ sudo emacs /var/lib/tomcat7/webapps/ROOT/hello.jsp 


   내용은 

 

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


  로 채우고 저장합니다. 

9. 톰캣과 아파치 재시작 (Restart)

$ sudo /etc/init.d/tomcat7 restart
  $ sudo /etc/init.d/apache2 restart



10. 브라우저에서 
 
    http://localhost  와 http://localhost/hello.jsp 로 테스트 해봅니다. 




 

+ Recent posts