본문 바로가기
SERVER

[Spring boot] web앱 리눅스 배포(gradle)

by amoomar 2024. 1. 11.
반응형

gradle기반의 spring boot프로젝트를 Ubuntu구축 서버에 배포하는 작업을 진행하였는데, 그에 대한 내용을 포스팅 하였다. 사용한 개발 tool은 IntelliJ이며, 목차는 아래와 같이 구성하였다.

1. build파일 생성

2. 서버 배포
  1. 정상 구동 테스트
  2. 백그라운드 구동

 

작업에 앞서 언급할 이야기가 있다.

 

spring boot는 1.4.2이상 버전일 경우 jar파일로 빌드 시, jsp파일은 생성되지 않는다. 배포에 성공하여 spring boot를 실행하여도 404에러만 확인된다는 것이다. 즉, 버전에 따라 jsp파일 참조가 필수인 웹 애플리케이션의 경우라면 파일 빌드를 war로 해야한다는 것이다.

 

이때, spring boot특성 상 jar파일의 경우 WAS구축이 불필요하며 war파일의 경우 WAS구축이 필요하다는 것을 깨닫는다면 리눅스 초보자는 굉장한 스트레스에 휩싸이게 된다...^^

 

하지만, 해당 게시글에서는 WAS구축단계 없이

JDK만 끼워진 리눅스 서버에서 war확장자의 웹 애플리케이션 정상 구동되도록 하는 방법을 다룬다.

 

이 서론에 대한 내용의 출처 포스팅 2개를 최하단에 참조하였다.

 


 

 

1. build파일 생성

로컬 환경에서 작업이 완료된 웹 애플리케이션을 리눅스 서버에 배포하기 위해서는 build파일을 생성하여, 리눅스 서버에 업로드 후 해당 build파일을 구동하는 단계로 진행해야한다. 인텔리제이를 활용한다면 build파일을 손쉽게 생성할 수 있다.

인텔리제이에서 제공하는 gradle 작업 탭. 우측에 표출된다.

 

 

 

위 작업을 통해 생성된 war파일의 위치는 아래와같다.

프로젝트>build>libs>00.war

 


 

2. 서버 배포

위에서 생성된 war파일을 원하는 서버 경로에 업로드 한다.

 

 

 

 

위 web.war를 구동하기 위한 방법에는 아래와 같은 방법이 있다는 것을 알아둘 필요가 있다.

 

1.개발환경처럼 앱을 구동한 사용자가 'ctrl+c'로 작업 종료하거나, 리눅스 접속 툴 닫으면 앱이 종료가 되는 방법

2. 백그라운드 프로세스로 구동시켜, 앱을 구동한 사용자가 다른 작업을 하거나 로그아웃 및 접속 툴을 닫아도 지속적으로 구동되는 방법

 

본인의 경우, 회사에서 활용하는 앱인 만큼 상시로 다른 인원들이 특정 url접속을 통해 웹 애플리케이션을 확인해야하기 때문에 간단하게 방법 1로 build한 war파일이 정상적으로 실행 및 접속되는지 확인 후, 해당 war파일이 실행된 상태를 유지할 수 있도록 백그라운드로 구동하는 순서로 작업하였다.

 

1. 정상 구동 테스트

java -jar 내가실행할파일.war

위 명령어를 통해 업로드했던 web.war파일을 아래와 같이 구동시킬 수 있다.

구동 완료

 

 

예시 이미지에서 얼핏 확인 가능하듯이, 구동을 하는 순간 다른 어떤 명령어도 입력하지 못하고 계속 저 로그 표출 상태만 띄워놓아야 웹 애플리케이션 실행이 유지된다.

 

 


 

 

2. 백그라운드 구동

nohup java -jar 내가실행할파일.war &

위 명령어를 통해 아래와 같이 정상적으로 웹 애플리케이션을 백그라운드로 구동할 수 있다.

nohup.out에서 로그 확인 가능

 

 

tail -f /itdata/PROJECT/2024/DNA/WEB/nohup.out

위 명령어는 nohup.out에 저장되는 로그를 실시간 표출로 확인 가능하도록 한다.

출력 예시

 

 

구동한 war파일을 종료하기 위한 명령어와 그에 대한 표출 예시는 아래와 같다.

PID확인 명령어
ps -ef | grep '내가실행한앱 이름'

프로세스 강제종료
kill -9 위에서조회한PID

pid조회 및 종료 예시

 

 


 

 

작업을 진행하면서 참고한 포스팅의 링크를 아래에 첨부하였다.

https://regyu.tistory.com/3

 

Spring Boot jar 파일 실행시 jsp 404 Not Found Error 해결방법(solution)

spring boot jar.md Spring Boot 스프링부트는 Spring 프로젝트가 제공하는 다양한 라이브러리와 프레임워크로 단독실행되는, 실행하기만 하면 되는 상용화 가능한 수준의, 스프링 기반 애플리케이션을

regyu.tistory.com

https://littlecandle.co.kr/bbs/board.php?bo_table=codingnote&wr_id=254

 

[JAVA]스프링 부트 1.4.2 이상에선 jar 파일로 빌드시 JSP안됩니다! > IT Note | 리틀캔들

2023.04.11 | 906 view

littlecandle.co.kr

 

반응형

'SERVER' 카테고리의 다른 글

[tomcat] intellij 이미지 로드 설정  (0) 2025.01.02
[PM2] PM2에 대하여  (0) 2023.05.26
[CentOS/Nginx] vue 배포  (0) 2023.04.05
[Linux] DB 서버 재기동  (0) 2023.01.26
[tomcat] mobaxterm설치 및 배포작업  (0) 2022.07.04