현대화가 모든 서비스를 한 번에 교체하는 경우는 드뭅니다. 이 챌린지형 프로젝트에서는 컨테이너 웹 파일럿, 호스트 데이터베이스, Nginx 게이트웨이, Apache 레거시 엔드포인트로 구성된 로컬 혼합 스택을 각기 다른 포트와 방식으로 운영합니다.
Docker에 콘텐츠를 bind mount하고, MariaDB 계정을 한 DB로 제한하고, 준비된 내부 앱으로 프록시하고, Apache .htaccess 리디렉션으로 기존 URL을 보존합니다. 포트 충돌 없이 컨테이너와 호스트 서비스를 조정하는 실습입니다.
학습 내용
web-pilot이라는nginx:alpine컨테이너를 bind mount와8080:80포트 매핑으로 실행하기- MariaDB를 설치·시작하고
globaltech_data를 만들어app_user@localhost에 해당 DB 권한 부여하기 - 호스트 Nginx 포트
80의/를 준비된127.0.0.1:5000서비스로 프록시하기 - Nginx 구성을 검증하고 다시 로드한 뒤 공개 엔드포인트에서 backend 콘텐츠 확인하기
- Apache를 포트
8081로 옮기고/legacy를 제공하며.htaccessoverride 허용하기 - Apache 규칙으로
/old에서/legacy로의301또는302리디렉션 구현·검증하기
추천 대상
결과 중심 챌린지에서 Docker, MariaDB, Nginx, Apache를 통합할 준비가 된 Linux 및 DevOps 학습자에게 적합합니다.
선수 지식: Docker 실행 옵션과 bind mount, Linux 패키지·서비스, 기본 SQL 권한, 웹 서버 구성, 포트, curl에 익숙해야 하는 평가형 프로젝트입니다.
학습 환경: sudo, Docker, APT, MariaDB, Nginx, Apache, 포트 5000의 준비된 backend와 로컬 네트워크가 있는 브라우저 기반 Linux 호스트이며 클라우드는 필요하지 않습니다.
자주 묻는 질문
여기서 하이브리드는 하이브리드 클라우드나 다중 노드를 뜻하나요?
아니요. 단일 랩 머신에서 Docker 워크로드와 호스트 서비스를 결합합니다. 클라우드나 여러 서버를 프로비저닝하지 않습니다.
MariaDB가 웹 애플리케이션에 연결되나요?
아니요. DB, 로컬 사용자, 비밀번호, DB 범위 권한을 독립적으로 검증합니다. Schema, 테이블, Migration, 앱 연동은 범위 밖입니다.
Nginx 뒤의 backend를 만들어야 하나요?
아니요. 127.0.0.1:5000에 모의 앱이 이미 준비되어 있으며 포트 80의 Nginx로 접근하도록 구성합니다.
Nginx와 Apache가 함께 실행되는 이유는 무엇인가요?
Nginx는 80, Apache는 8081, Docker 파일럿은 8080으로 포트가 다릅니다. /old 리디렉션도 .htaccess에 정의해야 합니다.





