웹 애플리케이션을 Docker와 NGINX로 자체 서버에 배포하는 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
Linux 기반 서버에서 Docker와 NGINX를 사용한 웹 애플리케이션 배포를 처음 시도하는 개발자 및 중급자.
난이도: 중간 (Docker와 NGINX 기본 지식 필요)
핵심 요약
- Dockerfile 생성
FROM node:20-alpine
,WORKDIR /app
,CMD ["npm", "start"]
등으로 애플리케이션 컨테이너화- 컨테이너 빌드 및 실행
docker build -t my-react-app
명령어로 이미지 빌드,docker run -d -p 3000:3000
으로 컨테이너 실행- NGINX 설정
/etc/nginx/sites-available/myapp
에 프록시 설정 파일 작성 후sudo ln -s
로 활성화- SSL 인증서 적용
ssl_certificate
및ssl_certificate_key
경로 지정하여 HTTPS 지원 활성화
섹션별 세부 요약
1. Dockerfile 설정 및 빌드
Dockerfile
생성: Node.js 기반 이미지 사용, 애플리케이션 코드 복사,npm install
및npm start
명령어 지정docker build -t my-react-app
명령어로 이미지 생성docker run -d -p 3000:3000
으로 컨테이너 실행 및 포트 매핑
2. NGINX 설치 및 구성
- NGINX 설정 파일 경로:
/etc/nginx/nginx.conf
(메인 설정),/etc/nginx/sites-available/
(사이트별 설정) sudo nano /etc/nginx/sites-available/myapp
명령어로 설정 파일 생성proxy_pass http://localhost:3000
로 애플리케이션 요청 전달sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
로 설정 활성화
3. SSL 인증서 적용 (HTTPS 활성화)
server
블록에listen 443 ssl
지정,ssl_certificate
및ssl_certificate_key
경로 입력return 301 https://$host$request_uri
로 HTTP 요청을 HTTPS로 리다이렉트
4. NGINX 설정 검증 및 재시작
sudo nginx -t
명령어로 설정 파일의 문법 오류 검사sudo systemctl restart nginx
로 설정 적용
결론
- Docker와 NGINX를 통해 서버에 애플리케이션을 배포할 때는
docker build
,docker run
,sudo systemctl restart nginx
명령어를 순차적으로 수행해야 함. - SSL 인증서 적용 시
ssl_certificate
및ssl_certificate_key
경로를 정확히 입력해야 하며, 설정 적용 전nginx -t
로 오류 검사를 반드시 수행해야 함. - 이 방법은 애플리케이션의 유연성과 성능 향상, 비용 절감 효과를 제공하며, 자체 서버 관리에 대한 이해도를 높이는 데 도움이 됨.