오류 해결💡

[Server] Spring Boot 하나의 프로젝트를 다수 포트에서 실행하는 방법 (intelliJ, 터미널)

jungha_k 2022. 12. 9. 15:44

하나의 애플리케이션을 각각 다른 포트로 여는 방법에 대해서 기록!

 

맨 처음에 다른 서버로 열되 동일 프로젝트로 진행한다는 문구를 보고

'그럼 클론을 하나 더 받아야한단 소린가..?🤔' 싶었는데 물론 절대 아니였다. 

 

아래 둘 중의 하나를 선택해 진행할 수 있다.

 

 

 

1. IntelliJ의 Edit Configuration 방법

2. 터미널에서 빌드된 jar 파일을 실행할 경우 방법

 


 

1. IntelliJ의 Edit Configuration 방법

 

 

Edit Configuration 클릭

 

Add New Configuration 

Spring Boot 클릭

 

 

 

이름 지정 뒤,

Build and run 부분을

기존 Application 파일과 동일하게 설정해주기

 

 

 

Build and run 우측에 있는 Modify Options 클릭한 뒤,

Add VM options 선택

 

 

 

VM options 부분에

-Dserver.port = 서버번호 

를 작성해준다. 

 

 

 

기존 8080 포트가 아닌

8081 포트로 실행되는 configuration 생성 완료!

 

 

 

각자의 탭에서 

두 서버가 잘 돌아간다.

 

 


 

2. 터미널에서 빌드된 jar 파일을 실행할 경우 방법

 

 

* 애플리케이션 빌드는 

인텔리제이 Gradle 탭에서 Tasks ➡ build ➡ :bootJar 나 :build 를 더블 클릭하면 할 수 있다.

 

혹은 

 

터미널에서 프로젝트 디렉토리가 있는 곳으로 이동한 뒤,

./gradlew build 를 입력하면 할 수 있다.

 

 

빌드된 파일은 보통 build/libs 에서 확인할 수 있다.

 


java -Dserver.port=8081 -jar sample-0.0.1-SNAPSHOT.jar

 

빌드된 파일을 실행할 때

build/libs 디렉토리에서 입력해준다.

 

 

IntelliJ에 추가해줬던 것과 마찬가지로

-Dserver.port=포트번호  를 입력해주면 

 

해당 포트로 애플리케이션을 실행시킬 수 있다.

 

 

 

* Windows PowerShell 에서는 읽지 못하는 명령어이므로

bash 나 명령프롬포트(cmd) 창에서 실행할 수 있다.

 

(하위 사진은 PowerShell 실행시 오류 사진)

 

 

 


 

여러 포트를 지정해줬지만 결국 동일 url 로 접속가능하게 하고 싶다면

 프록시서버 (nginx)를 활용한 '로드밸런싱'과 관련이 있다.