DEPLOYMENT
00:00 경과
LABLAB-DOCKER-01-NGINX-RP중급
nginx 리버스 프록시 직접 구성하기
ELAPSED
00:00
PHASE
0 / 7
SLA
50분
📦 Docker← 목록
INCIDENT RESPONSE
0 / 8 단계 완료
📚 PREREQUISITES
TRACK
DOCKER
SLA
50분
LEVEL
중급
PHASES
6단계
ENV
container
INCOMING TICKET
“팀 리드 Slack DM: "오늘 오후 3시 고객사 데모인데 80포트로 접근하면 Node.js 앱이 나와야 해요. 지금은 3000으로만 되는 상태고 고객사 IT팀이 방화벽에서 3000은 차단한대요. 2시간 안에 nginx 붙여줄 수 있어요?"”
YOUR ROLE
주니어 인프라 엔지니어
안 하면 나중에
80포트 미제공 시 오후 3시 고객사 데모 취소 위기. nginx 리버스 프록시 미구성으로 Node.js 앱이 3000번 포트에만 노출된 상태.
📋상황 브리핑
팀 리드에게서 Slack 메시지가 왔습니다.
"로컬에서 Node.js 앱 3000포트로 테스트하고 있는데, 이제 nginx 앞에 붙이고 외부에서 80포트로 들어오면 앱으로 프록시되게 해줘. 운영 배포 직전 구조로 맞춰보는 거야."
docker-compose.yml과 빈 nginx.conf가 준비되어 있습니다.
nginx.conf를 직접 작성해서 리버스 프록시를 완성하세요.
초기 상태: setup.sh 실행 후 작업 디렉터리에 `docker-compose.yml`(nginx + Node.js backend 두 서비스 정의)과 비어있는 `nginx.conf` 템플릿이 생성됩니다. backend 컨테이너는 포트 3000에서 Node.js 앱을 실행 중입니다. nginx.conf는 학습자가 직접 upstream 블록과 location 블록을 작성해야 합니다.
⏱ 50분📊 중급🔧 6단계#nginx#docker-compose#reverse-proxy#proxy_pass
MISSION
1
Docker Compose 환경 시작
nginx와 backend 컨테이너가 모두 running 상태여야 한다
2
nginx.conf — upstream 블록 작성
nginx.conf에 upstream 블록이 존재하고 nginx -t 문법 검사를 통과해야 한다
3
/api 요청을 백엔드로 프록시
curl http://localhost/api/health 가 200을 반환해야 한다
4
/ 요청도 프록시 추가
curl http://localhost/ 도 200을 반환해야 한다
5
nginx access 로그 확인
/api/health 요청이 nginx access.log에 기록되어야 한다
6
최종 검증 — verify.sh 실행
verify.sh가 모든 체크를 PASS하고 exit 0으로 종료되어야 한다
📌 선수 지식
ℹ️ 실습 환경
환경: container
필요 도구: docker, docker-compose, curl
검증 스크립트:
/labs/nginx-reverse-proxy/scripts/verify.sh🔒
실습 실행은 Pro 플랜 전용입니다
인시던트 브리프와 학습 자료는 지금 바로 확인할 수 있습니다. 실제 실습 진행 및 터미널 사용은 Pro 플랜에서 가능합니다.
Pro로 업그레이드 →>_ LAB WORKSPACE
NOTES