클라우드에 웹앱 배포 방법: Nginx 사용 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 초보 개발자 및 클라우드 배포 경험자: Docker 및 Nginx 설정에 대한 실무 지식 필요
- 난이도: 중급 (Dockerfile 작성, Nginx 구성, 포트 매핑 등 기초 지식 요구)
핵심 요약
- Dockerfile 작성:
FROM node:18
,COPY package*.json ./
로 의존성 캐싱 최적화 - Nginx 역대리 설정:
proxy_pass http://localhost:3000
을 통해 포트 80으로 HTTP 요청 전달 - Docker 이미지 관리:
docker build -t my-app .
로 이미지 생성 후 Docker Hub에 업로드
섹션별 세부 요약
1. Dockerfile 작성
FROM node:18
기반의 Node.js Dockerfile 구조 제공COPY package*.json ./
후npm install
실행 → 의존성 캐싱으로 빌드 속도 향상EXPOSE 3000
과CMD ["npm", "start"]
으로 앱 실행 포트 및 명령어 정의
2. Docker 이미지 빌드 및 실행
- 로컬에서
docker build -t my-app .
명령어로 이미지 생성 docker run -p 3000:3000 my-app
로 컨테이너 실행 → 서버에서 앱 접근 가능- Docker Hub에 이미지 업로드 후 서버에서
docker pull
로 다운로드
3. Nginx 역대리 설정
- Nginx 설치:
sudo apt install nginx
후systemctl
로 서비스 활성화 sudo nano /etc/nginx/sites-available/default
에서proxy_pass
설정으로 앱 서버와 연결sudo nginx -t
로 구성 파일 검증 후sudo systemctl reload nginx
로 설정 적용
결론
- 핵심 팁: Dockerfile의 의존성 캐싱, Nginx의
proxy_pass
설정, HTTP 포트(80) 매핑을 통해 클라우드 배포 성공 - 추천: SSL 인증서 적용 및 로드 밸런싱 구성으로 확장성 강화 필요