IMG-LOGO
공지사항 :

Linux Spring 설정

lmkfox - 2025-02-03 07:03:21 56 Views 0 Comment

Linux에서 Spring Boot 애플리케이션을 설정하는 과정은 크게 다음과 같은 단계로 진행됩니다.


1. JDK 설치 및 환경 변수 설정

Spring Boot는 Java 기반이므로, 먼저 JDK가 설치되어 있어야 합니다.

JDK 설치 (예: OpenJDK 17)

sudo apt update  # Debian/Ubuntu
sudo apt install openjdk-17-jdk -y
sudo yum install java-17-openjdk -y  # RHEL/CentOS

Java 버전 확인

java -version

"openjdk version '17.0.x'" 등이 출력되면 정상적으로 설치된 것입니다.

환경 변수 설정 (필요할 경우)

echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

2. Spring Boot 애플리케이션 실행

JAR 파일 실행

Spring Boot 프로젝트를 빌드하면 target/ 폴더 아래에 .jar 파일이 생성됩니다. 이를 실행하는 방법입니다.

java -jar my-spring-app.jar

백그라운드 실행 (nohup)

Linux에서 서버가 종료되어도 실행되도록 nohup을 사용합니다.

nohup java -jar my-spring-app.jar > output.log 2>&1 &
  • output.log: 로그를 저장할 파일
  • &: 백그라운드 실행
  • 실행 중인 프로세스 확인: ps aux | grep java

포트 변경 (application.properties)

기본적으로 Spring Boot는 8080 포트를 사용합니다. 변경하려면 다음 설정을 추가합니다.

src/main/resources/application.properties

server.port=9090

또는

server:
  port: 9090

3. Systemd 서비스 등록 (자동 실행)

Spring Boot 애플리케이션을 시스템 부팅 시 자동으로 실행되도록 systemd 서비스로 등록할 수 있습니다.

서비스 파일 생성

sudo nano /etc/systemd/system/spring-app.service

파일 내용 작성

[Unit]
Description=Spring Boot Application
After=network.target

[Service]
User=ubuntu  # 실행할 사용자
WorkingDirectory=/home/ubuntu/myapp  # 애플리케이션 경로
ExecStart=/usr/bin/java -jar /home/ubuntu/myapp/my-spring-app.jar
SuccessExitStatus=143
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

서비스 등록 및 실행

sudo systemctl daemon-reload
sudo systemctl enable spring-app
sudo systemctl start spring-app
sudo systemctl status spring-app

4. 방화벽 설정

Spring Boot 애플리케이션이 특정 포트에서 외부 접속을 허용하도록 방화벽을 설정해야 합니다.

UFW (Ubuntu)

sudo ufw allow 9090/tcp
sudo ufw reload

Firewalld (CentOS)

sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent
sudo firewall-cmd --reload

5. Reverse Proxy (Nginx) 설정

Spring Boot를 8080 포트에서 실행할 경우, Nginx를 통해 80 포트로 프록시할 수 있습니다.

Nginx 설치

sudo apt install nginx -y  # Ubuntu/Debian
sudo yum install nginx -y  # CentOS/RHEL

Nginx 설정 파일 수정

sudo nano /etc/nginx/sites-available/spring-app
server {
    listen 80;
    server_name mydomain.com;

    location / {
        proxy_pass http://127.0.0.1:9090;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

설정 적용

sudo ln -s /etc/nginx/sites-available/spring-app /etc/nginx/sites-enabled/
sudo systemctl restart nginx

6. 로그 관리 및 모니터링

Spring Boot 애플리케이션의 로그는 기본적으로 logs/ 디렉터리에 저장됩니다.

로그 실시간 확인

tail -f logs/application.log

CPU 및 메모리 사용량 확인

top
htop  # 설치 필요 (sudo apt install htop)

애플리케이션 종료

sudo systemctl stop spring-app  # systemd 사용 시
kill $(pgrep -f 'my-spring-app.jar')  # 프로세스 직접 종료


댓글