[Docker] 06. Nginx 설정부터 React · Spring 연동까지 정리
Docker로 백엔드와 DB를 실행했다면, 이제 실제 배포 구조에 가까워질 차례다.
이번 글에서는 Nginx 개념부터 React + Spring 연동, 그리고 404 에러 해결까지 한 번에 정리해본다.
1. Nginx란 무엇인가?
Nginx는 웹 서버이자 리버스 프록시 서버다.
사용자의 요청을 먼저 받아서 백엔드 서버(Spring 등)로 전달해주는 역할을 한다.
구조는 보통 다음과 같다.
[사용자] → [Nginx] → [Spring 서버]
2. 왜 Nginx가 필요한가?
- 정적 파일(React build 파일) 빠르게 제공
- 백엔드 서버를 외부에 직접 노출하지 않음
- 포트 통합 (80번 하나로 관리 가능)
- SSL 적용 시 필수
3. Docker로 Nginx 실행
docker run -d -p 80:80 nginx
기본 Nginx 서버가 실행된다.
4. React + Spring 연동 구조
보통 이렇게 구성한다.
- React → build 생성
- Nginx → React 정적 파일 제공
- /api 요청 → Spring 서버로 전달
5. nginx.conf 기본 설정 예시
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri /index.html;
}
location /api/ {
proxy_pass http://backend:8080/;
}
}
설명
location / → React 정적 파일 처리
try_files $uri /index.html; React Router 404 방지용 설정
location /api/ → 백엔드 서버로 요청 전달
6. docker-compose 예시
version: '3'
services:
backend:
build: .
ports:
- "8080:8080"
nginx:
image: nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- ./build:/usr/share/nginx/html
depends_on:
- backend
7. React 404 에러 해결 방법
React Router를 사용하는 경우, 새로고침 시 404가 발생할 수 있다.
이때 반드시 nginx 설정에
try_files $uri /index.html;
을 추가해야 한다.
이 설정이 없으면 서버가 해당 경로 파일을 찾다가 404를 반환한다.
8. 전체 흐름 정리
- React build 생성
- Spring 서버 실행
- Nginx가 정적 파일 제공
- /api 요청은 Spring으로 전달
이 구조가 기본적인 실전 배포 구조다.
마무리
Docker는 실행 환경을 통일해주고, Nginx는 요청을 정리해주는 역할을 한다.
이 구조를 이해하면 실제 배포 환경과 거의 비슷한 구성을 만들 수 있다.
'Tech Stack > Docker' 카테고리의 다른 글
| [Docker] 05. 로컬에서 서버 배포까지 흐름 정리 (0) | 2026.02.12 |
|---|---|
| [Docker] 04. docker-compose 사용법 (0) | 2026.02.12 |
| [Docker] 03. Dockerfile 작성해보기 (0) | 2026.02.12 |
| [Docker] 02. Docker 기본 명령어 정리 (0) | 2026.02.12 |
| [Docker] 01. Docker란 무엇인가? (0) | 2026.02.12 |