상세 컨텐츠

본문 제목

Spring Boot 프로젝트를 리눅스 서버에 배포하는 방법

카테고리 없음

by 코딩하는 박줄기 2025. 5. 23. 22:46

본문

728x90
반응형

Spring Boot 프로젝트를 리눅스 환경에 배포하는 과정을 단계별로 안내합니다. .jar 또는 .war 파일을 빌드하고, 리눅스 서버에 업로드하여 실행하는 데 필요한 주요 명령어와 팁도 함께 제공합니다.


1. 리눅스 서버 환경 준비

Spring Boot 애플리케이션을 실행하기 위해서는 리눅스 서버에 Java가 설치되어 있어야 합니다. 대부분의 경우 Java 8 이상이 필요합니다.

  • Java 설치 여부 확인:
    다음 명령어로 현재 설치된 Java 버전을 확인할 수 있습니다.
java -version
  • OpenJDK 설치 (Ubuntu 기준):
sudo apt update
sudo apt install openjdk-17-jdk

Java가 설치되지 않은 경우 위 명령어로 설치 후, 다시 버전을 확인하세요.


2. Spring Boot 프로젝트 빌드

개발이 완료된 프로젝트를 .jar 또는 .war 형태로 패키징해야 서버에서 실행할 수 있습니다.

  • Maven 빌드 명령어:
./mvnw clean package

빌드가 완료되면 target 디렉토리 아래에 실행 파일이 생성됩니다. 예: demo-0.0.1-SNAPSHOT.jar


3. 리눅스 서버로 파일 전송

생성된 .jar 또는 .war 파일을 리눅스 서버로 전송합니다. scp 명령어를 사용하면 간단합니다.

scp target/demo-0.0.1-SNAPSHOT.jar user@서버IP:/home/user/
  • user: 리눅스 서버 사용자 이름
  • 서버IP: 리눅스 서버의 IP 주소

4. 애플리케이션 실행

서버에 접속하여 애플리케이션을 실행합니다.

  • SSH 접속:
ssh user@서버IP
  • Spring Boot 실행:
java -jar /home/user/demo-0.0.1-SNAPSHOT.jar
  • 웹에서 접속 확인:
http://서버IP:8080

기본 포트는 8080이며, 변경한 경우 해당 포트로 접속해야 합니다.


5. 방화벽 설정 (8080 포트 열기)

서버 외부에서 애플리케이션에 접근하려면 포트가 열려 있어야 합니다.

sudo ufw enable
sudo ufw allow 8080
sudo ufw reload

ufw(Uncomplicated Firewall)가 설치되어 있지 않다면 sudo apt install ufw로 먼저 설치하세요.


6. 백그라운드 실행 및 로그 확인

서버에서 터미널을 닫아도 애플리케이션이 계속 실행되도록 nohup 명령어를 사용합니다.

  • 백그라운드 실행:
nohup java -jar /home/user/demo-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
  • 실행 확인:
ps -ef | grep demo
  • 애플리케이션 종료:
kill <프로세스ID>
  • 로그 확인:
tail -f app.log

7. (선택) Nginx 리버스 프록시 설정

도메인 연결이나 포트 숨김을 원할 경우, Nginx를 설정하여 80포트로 프록시할 수 있습니다.

  • 예시 설정 (/etc/nginx/sites-available/default):
server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

설정 후 sudo systemctl reload nginx로 적용합니다.


8. 서버 기본 설정 팁

  • IP 주소 확인:
sudo apt install net-tools
ifconfig
  • SSH 서버 상태 확인 및 시작:
sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl status ssh

기본적으로 SSH는 22번 포트를 사용합니다.


9. 결론

Spring Boot 애플리케이션을 리눅스 서버에 배포하는 일은 생각보다 간단합니다.
빌드 → 업로드 → 실행 → 백그라운드 설정 → 방화벽 열기 → (선택) Nginx 설정까지 진행하면 프로덕션 환경에도 대응 가능한 기본 배포 구조가 완성됩니다.

728x90
반응형

댓글 영역