도커 실습 6 - 역방향 프록시를 이용한 마이크로 서비스 > 클라우드네이티브

본문 바로가기

[실습] 도커 실습 6 - 역방향 프록시를 이용한 마이크로 서비스

필기자
2025-10-15 09:37 451 0

본문

도커 (Docker)
  • 도커는 컨테이너 기반의 오픈소스 플랫폼임.
  • 애플리케이션과 그 의존성을 컨테이너로 패키징하여, 어디에서나 동일하게 실행할 수 있게 함.
  • 도커 컨테이너는 가볍고 이식성이 높아서, 마이크로서비스 아키텍처와 잘 어울림.
마이크로서비스 (Microservices)
  • 마이크로서비스는 하나의 큰 애플리케이션을 작은, 독립적인 서비스 단위로 분리한 아키텍처 패턴임.
  • 각 서비스는 독립적으로 배포하고 운영할 수 있으며, 다른 서비스와 네트워크를 통해 통신함.
  • 마이크로 서비스 아키텍처는 애플리케이션의 확장성, 유지보수성, 장애 격리 등을 향상시킬 수 있음.
 
3529946166_L53xFBoC_36d0f10d93cd76f9943296a9fefd255e84e0da64.png


 
도커와 마이크로서비스의 관계
  • 도커 컨테이너는 마이크로서비스를 구현하고 배포하는 데 이상적인 방법을 제공함.
  • 각 마이크로서비스는 독립적인 컨테이너로 실행할 수 있으며, 이 컨테이너들은 동일한 호스트나 다른 호스트에 배포할 수 있음.
  • 도커 컨테이너를 사용하면, 개발부터 테스트, 스테이징, 프로덕션까지 일관된 환경에서 애플리케이션을 실행할 수 있음.
즉, 도커는 마이크로서비스 아키텍처를 쉽게 구현하고 관리할 수 있는 강력한 도구를 제공하며, 둘은 서로 보완적인 관계임.

역방향 프록시를 이용한 도커 기반 마이크로 서비스 시나리오
  • front 프로그램 서버 컨테이너
  • task 마이크로 서비스 서버 컨테이너
  • user 마이크로 서비스 서버 컨테이너
  • mysql 컨테이너(기존 실습)
  • nginx 역방향 프록시 컨테이너(기존 실습 활용)
20251016115518_6d1ddc47e2d983b9fd921389f96f427f_zfw6.png

클라우드서버(우분투 게스트)에 필요한 폴더 생성

# front 프로그램은 기존 html 폴더와 연결
mkdir ./php/task
mkdir ./php/user


각 컨테이너 생성 및 실행

docker run -d --name myfront -p 8011:80 --net php-mysql -v ~/html:/var/www/html myphpimage
docker run -d --name mytaskapi -p 8012:80 --net php-mysql -v ~/php/task:/var/www/html myphpimage
docker run -d --name myuserapi -p 8013:80 --net php-mysql -v ~/php/user:/var/www/html myphpimage


3529946166_q0BlOENr_11a67a098e077ff444b0ea6d1eaf35f19470e6f8.png


역방향 프록시 host 설정 3529946166_wkYHaeOM_11a858dbaaef2da8fe1ff3a8fcf7ec4ec9c2092c.png

윈도우에서 host 파일에 도메인 추가
  • C:\Windows\System32\drivers\etc


3529946166_Fv5dmN6B_4ad8f65c52ecc24787702b207f7410993b03eeff.png


맥OS에서 host 파일에 도메인 추가

  • /etc/hosts


#아래 내용용 입력후 저장
192.168.47.128 gctask.com



#hosts 변경 적용
sudo dscacheutil -flushcache


http://gctask.com/ 접속

3529946166_VMAx9GwH_518a842720ce72e3308099189635393d0e674467.png

프로그램 분리

  • front 프로그램과 task api 프로그램과 분리
3529946166_8moVNsCc_a3e9be2c42fe860c20dbd948d889ca1324963117.png

app.js 상단 수정

const hostName = window.location.hostname;
const hostNameServerUrl = '/task/';


database.php 상단 Cross Origin 관련 문구 삭제

//header("Access-Control-Allow-Origin: *");
$mysql_host = "mysql";
$mysql_user = "php-mysql";
$mysql_password = "123456";
$mysql_db = "php-mysql";

$connection = mysqli_connect(
    $mysql_host, $mysql_user, $mysql_password, $mysql_db
);


역방향 프록시 Custom locations 설정

3529946166_VDCmRaq7_1d3a49e2f7b6a328cad48df045d22c98123ecf41.png

http://gctask.com/ 접속 후 기능 테스트

3529946166_6bUu3CcF_c51c77788b7a64c1ad6be9e256f58eded7dcb86d.png

댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색