개요
2022.08.23 - [Ubuntu] Apache Tomcat 설치에서 설치한 Tomcat에 WAR로 패키징된 애플리케이션을 배포하려고 한다.
배포할 애플리케이션은 이미 maven 등으로 빌드해두었다고 가정한다.
이 글에서는 https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/에서 제공하는 예제 애플리케이션을 사용할 것이다.
배포 방법 1. 기본 이름(ROOT.war) 사용
Tomcat은 기본적으로 설치 경로(CATALINA_HOME)의 webapps 아래에 war 파일이 존재하면 자동으로 압축을 풀고 애플리케이션을 실행한다.
이 때 war 파일의 이름을 ROOT로 지정하면 별다른 설정 없이 애플리케이션을 실행할 수 있다.
# webapps 디렉터리로 이동
cd CATALINA_HOME/webapps/
# 기존 애플리케이션 삭제
rm -r ROOT
# 배포할 애플리케이션 이름 변경
mv <YOUR_APP>.war ROOT.war
이후 tomcat을 실행하면 압축이 풀리면서
새로 배포한 애플리케이션이 동작하는 모습을 확인할 수 있다.
배포 방법 2. 기존 이름 사용
배포할 애플리케이션의 이름을 그대로 사용할 수도 있다.
webapps 디렉터리에 내에 배포할 WAR 파일을 위치시킨다. 기존 애플리케이션인 ROOT 디렉터리는 삭제한다.
CATALINA_HOME/conf/server.xml 파일 중 Host 태그 내에 아래와 같이 Context 태그를 추가한다. 이 글에서는 루트(/) 경로로 접속하면 sample 애플리케이션을 로딩하도록 설정했다.
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="<PATH>" docBase="<WAR_FILENAME>" reloadable="false" > </Context>
</Host>
# 예시
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="sample" reloadable="false" > </Context>
</Host>
💡
Host 태그를 보면 appBase 속성에 의해 애플리케이션의 기본 디렉터리가 webapps로 설정되어 있는 것을 볼 수 있다. 또한 uppackWARS, autoDeploy가 true로 설정되어 있기 때문에 애플리케이션 파일은 webapps에 위치시킨 것만으로 서비스 배포가 가능한 것이다.
이제 tomcat을 실행하면 sample 애플리케이션에 접속할 수 있다.
참고 문서
https://www.lifencoding.com/web/28?p=1