maven 을 쓰고 있다면 간단한 명령으로 바로 tomcat 에 바로 디플로이 해서 테스트 해볼 수 있습니다.

mvn tomcat:run

만 하면 바로 실행할 수가 있습니다. 그런데 맘에 들지 않습니다. application root 때문입니다. http://localhost:8080/{war_name} 으로 실행이 되기 때문입니다. http://localhost:8080 으로 바꾸고 싶다면 간단하게 옵션을 줘서 바꿀 수가 있습니다.

mvn tomcat:run -Dmaven.tomcat.path=/

역시 간단하게 됩니다. 따로 옵션 주고 싶은 것도 추가해 주면 됩니다.

mvn tomcat:run -Dspring.profiles.active=local -Dmaven.tomcat.path=/

그런데 위와 같이 실행하면 tomcat version 6 으로 동작합니다. 최근에는 tomcat version 7 을 많이 쓰지요. tomcat 을 tomcat7 으로 바꿔서 명령을 날리면 동작하지 않습니다. 역시 간단하게 바꾸는 방법이 있습니다. 두가지 방법이 있지만 IDE 를 사용해서 개발하는 팀원하고 맞추기 위해서는 (저는 기본적으로 IDE 는 프로젝트 설정할 때만 사용합니다) pom.xml 을 바꾸는 것을 올바른 방법이 아니라고 생각해서 다른 방법을 택합니다.

OSX 기준으로 maven 을 brew 를 이용해서 깔았다면 /usr/local/Cellar/maven/3.3.1/libexec/conf/settings.xml 를 열어서

<pluginGroups>
  <!-- pluginGroup
   | Specifies a further group identifier to use for plugin lookup.
  <pluginGroup>com.your.plugins</pluginGroup>
  -->
  <pluginGroup>org.apache.tomcat.maven</pluginGroup>
</pluginGroups>

와 같은 식으로 <pluginGroup>org.apache.tomcat.maven</pluginGroup> 를 추가해 줍니다. 그리고 다시

mvn tomcat7:run

와 같이 실행하면 tomcat version 7 으로 실행이 되는 것을 확인할 수가 있습니다.

힘들게 저번 포스트 에서 정리를 했더니  더 쉬운 방법이 있다고 알려줘서 정리를 해 둡니다. (시작할 때 왜 알려주지 않은건가여.. )

저번과 거의 동일 합니다.

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. 톰캣 에서 커넥터와 연결시키기 

$ 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은 톰캣 서버가 처리를 하는 포트라고 보시면 됩니다.   


5.  Proxy_AJP 모듈 활성화 시키기

소개해주신 분의 말씀으로는 아파치와 톰캣을 너무 자주 연결시키다 보니 아파치에 아예 포함되서 나오게 됐다고 합니다.

 $ sudo a2enmod proxy_ajp  



이 부분이 저번 포스트에서 언급했던 커넥터 부분과 동일한 기능을 하는 부분입니다.  

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

$ 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>

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

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

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

를 추가해줍니다. 부연 설명을 하자면 아파치(apache)가 바라보고 있는 DocumentRoot 와 톰캣이 바라보고 있는 webapps/ROOT 를 같은 곳을 바라보게 해주는 것입니다. 그리고 맨 아래에 추가해 준것은 jsp 와 do 로 끝나는 파일은 ajp 프로토콜로 8009 번 포트로 리다이렉션 해주라는 것입니다. 

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

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


   내용은 

  

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


  로 채우고 저장합니다. 

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

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



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


 

+ Recent posts