728x90
SpringBoot 프로젝트를 war 파일로 만들어 리눅스서버에 Tomcat 을 이용해 배포하는 방법에 대해 간략하게 알아보겠습니다. IntelliJ + gradle 기준으로 작성되었습니다.
1. build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '2.6.15'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'war'
}
apply plugin: 'war'
bootWar {
archiveBaseName = '-'
archiveFileName = 'MyApp.war'
archiveVersion = "1.0.0"
}
group = 'com.myapp'
version = '1.0.0'
- 원하는 war 파일명과 version 을 지정해줍니다.
2. war 파일 만들기
- Tasks > build > buildWar 를 누르면 프로젝트의 "build > libs" 경로에 war 파일이 생겼습니다.
3. war 파일 이동
- 리눅스에 설치된 tomcat 경로로 이동후, webapps 폴더에 war 파일을 업로드 합니다.
4. server.xml
<?xml version="1.0" encoding="UTF-8"?>
<Server port="1005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="1121" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="1443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" maxPostSize="-1" maxParameterCount="-1" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="false">
<Context path="/" docBase="/home/tomcat/webapps/MyApp" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
- Context Root Path 를 war 파일이 있는 곳으로 맵핑합니다.
5. 시작/종료 스크립트
# start.sh
export JAVA_HOME="/home/tools/openjdk-8u342-b07"
export JRE_HOME="/home/tools/openjdk-8u342-b07"
export CATALINA_BASE=/home/tomcat
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+DisableExplicitGC -Dspring.profiles.active=dev"
cd $CATALINA_BASE/bin
./startup.sh
# stop.sh
export CATALINA_BASE=/home/tomcat
cd $CATALINA_BASE/bin
./shutdown.sh
- -Dspring.profiles.active=dev 옵션을 통해 프로필 설정도 가능합니다.
감사합니다.
728x90
'프레임워크 > SpringBoot' 카테고리의 다른 글
[SpringBoot] MSA+JPA로 간단한 소스 구현하기 (0) | 2024.06.14 |
---|---|
[SpringBoot] Window10 Nexus Repository 구성하기 (0) | 2024.06.12 |
[SpringBoot] Cookie 사용하기 (0) | 2024.06.03 |
[SpringBoot] ErrorController 작성하기(With Thymeleaf) (0) | 2024.05.28 |
[SpringBoot] Mybatis 다중 Datasource 적용하기 (0) | 2024.05.27 |