Linux에서 Spring Boot 애플리케이션을 설정하는 과정은 크게 다음과 같은 단계로 진행됩니다.
Spring Boot는 Java 기반이므로, 먼저 JDK가 설치되어 있어야 합니다.
sudo apt update # Debian/Ubuntu sudo apt install openjdk-17-jdk -y
sudo yum install java-17-openjdk -y # RHEL/CentOS
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
Spring Boot 프로젝트를 빌드하면 target/ 폴더 아래에 .jar 파일이 생성됩니다. 이를 실행하는 방법입니다.
java -jar my-spring-app.jar
Linux에서 서버가 종료되어도 실행되도록 nohup을 사용합니다.
nohup java -jar my-spring-app.jar > output.log 2>&1 &
기본적으로 Spring Boot는 8080 포트를 사용합니다. 변경하려면 다음 설정을 추가합니다.
server.port=9090
또는
server: port: 9090
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
Spring Boot 애플리케이션이 특정 포트에서 외부 접속을 허용하도록 방화벽을 설정해야 합니다.
sudo ufw allow 9090/tcp sudo ufw reload
sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent sudo firewall-cmd --reload
Spring Boot를 8080 포트에서 실행할 경우, Nginx를 통해 80 포트로 프록시할 수 있습니다.
sudo apt install nginx -y # Ubuntu/Debian sudo yum install nginx -y # CentOS/RHEL
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
Spring Boot 애플리케이션의 로그는 기본적으로 logs/ 디렉터리에 저장됩니다.
tail -f logs/application.log
top htop # 설치 필요 (sudo apt install htop)
sudo systemctl stop spring-app # systemd 사용 시 kill $(pgrep -f 'my-spring-app.jar') # 프로세스 직접 종료