spring boot

Ubuntu(20.04)에서 Docker Spring Boot 앱 앞단에 Nginx 붙이기

hoazzinews 2026. 3. 27. 11:27

1. 개요

기존에 Docker + Spring Boot로 운영 중인 서비스를 Nginx + Docker + Spring Boot 구조로 변경해보는 가이드입니다.
Nginx를 앞단에 두면, 웹 서버와 WAS 역할을 분리하여 다음과 같은 이점을 얻을 수 있습니다:

  • 정적 파일 처리 최적화
  • SSL/HTTPS 적용 용이
  • 요청 라우팅 및 로드밸런싱 가능
  • Spring Boot는 비즈니스 로직 처리에 집중

주의: Nginx를 도입한다고 해서 Spring Boot와 정적 파일이 물리적으로 완전히 분리되는 것은 아니며, 역할만 분리된다는 점에 주의하세요.

2. 환경

  • 서버 OS: Ubuntu 20.04
  • Docker: 설치 및 Spring Boot 컨테이너 운영 중
  • 목적: 최소 변경으로 Nginx를 붙여 Reverse Proxy 적용


3. Nginx 설치

sudo apt update
sudo apt install nginx -y
nginx -v  # 설치 확인
 

4. Nginx Reverse Proxy 설정

Nginx 기본 설정 파일 열기

sudo nano /etc/nginx/sites-available/default
내용
server {
    listen 80;

    location / {
        proxy_pass http://localhost:8090;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

localhost:8090은 현재 Docker에서 expose한 Spring Boot 포트입니다.

5. Nginx 재시작

  1. Docker 컨테이너 확인
docker ps
 
  • Spring Boot 컨테이너가 실행 중인지 확인
  • 포트 8090이 외부에 열려 있어야 함
 
   2. Nginx 설정 테스트 및 재시작
sudo nginx -t   # 설정 확인
sudo systemctl restart nginx​
 
 

6. 동작 확인

브라우저에서 서버 IP 접속

http://192.168.0.30
 
  • Spring Boot 앱 화면이 정상적으로 나오는지 확인

포인트

  • Nginx는 정적 파일과 요청 라우팅 역할만 수행
  • Spring Boot는 비즈니스 로직 처리에 집중

7. 다음 단계

  • HTTPS 적용 (Let's Encrypt + certbot)
  • Nginx를 Docker로 올려 환경 일관성 확보
  • Docker Compose 도입하여 Nginx + App 컨테이너 통합 관리

 

 

 

 

 

 

 

반응형