JAR보단 WAR로 패키징한 경우 더 다양한 설정과 웹 환경을 구성할 수 있다.
다음은 프로젝트를 .war 포맷으로 변환한 후에 Tomcat을 이용해 실행해보는 과정이다.
1. JRE 설치
- https://www.azul.com/downloads/?version=java-11-lts&os=windows&architecture=x86-64-bit&package=jre
2. JRE 환경 변수 설정
- 변수 이름 : JRE_HOME
- 변수 값 : C:\Program Files\Zulu\zulu-11-jre
3. Tomcat 설치
- https://tomcat.apache.org/download-90.cgi
JDK 11 버전은 Tomcat 9 버전과 가장 호환성이 높다.
다운로드 경로는 편한대로
ex)
Mac : /Users/{username}/Downloads/apache-tomcat-9.0.68/
Windows : C:\Users\User\Downloads\apache-tomcat-9.0.68-windows-x64\apache-tomcat-9.0.68\
- bin : 톰캣을 실행하거나 종료할 수 있는 스크립트 파일이 존재
- conf : 서버 설정 파일이 존재
- webapps : 톰캣 위에서 실행할 웹 애플리케이션의 기본 저장 경로
(.war 파일을 이 곳에 이동시키거나, 설정파일에서 경로를 변경하여 실행할 수 있음)
4. 서버 실행 및 종료 명령어
OS에 상관없이 터미널에서 Tomcat의 bin 디렉토리로 이동한 후, 서버를 실행하고 종료한다.
Windows
wsl 터미널이 아닌 cmd 창을 이용하여 진행
C:\Users\...\apache-tomcat-9.0.68\bin> startup.bat # 톰캣 실행
C:\Users\...\apache-tomcat-9.0.68\bin> shutdown.bat # 톰캣 종료
Mac
{username}@{root} bin % startup.sh # 톰캣 실행
{username}@{root} bin % shutdown.sh # 톰캣 종료
Tomcat으로 웹 애플리케이션 실행
JAR에서 WAR로 포맷 변경
1. build.gradle 수정 및 reload
plugins {
...
id 'war' // 추가
...
}
...
2. 해당 프로젝트 Application 파일 수정
@SpringBootApplication
public class ToDoServerApplication extends SpringBootServletInitializer { // 변경 부분
public static void main(String[] args) {
SpringApplication.run(ToDoServerApplication.class, args);
}
// 변경 부분
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(ToDoServerApplication.class);
}
}
3. 프로젝트 빌드
- 해당 프로젝트 build → libs에 있는 war 파일(zip)을 Tomcat 파일 내부의 webapps 폴더 내부로 옮긴다.
4. Tomcat 파일 내부의 conf 폴더 내부에 있는 server.xml 파일을 수정
...
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="생성된 war파일 이름" reloadable="false" > </Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
...
++ Tomcat 포트 변경
- server.xml 파일 수정
...
<Connector port="원하는 포트 번호" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
...
외장 Tomcat은 위의 원하는 포트에서 실행
IDE에서 실행되는 Spring boot(Embeded Tomcat)은 8080포트에서 실행
'Develop > DevOps' 카테고리의 다른 글
Github Repository & Github Project 칸반 (0) | 2022.12.16 |
---|---|
Ngrok을 이용한 로컬에서 서버 실행 (0) | 2022.12.13 |
Cloud 운영 전략 (0) | 2022.12.09 |
리눅스 명령어 - 프로세스 Kill (1) | 2022.12.08 |
Cloud 개요 및 AWS 서비스 - 수동 배포 (0) | 2022.12.08 |