도커 실습 6 - 역방향 프록시를 이용한 마이크로 서비스 > 도커 & 쿠버네티스

본문 바로가기

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

필기자
2023-10-17 14:13 1,515 0

본문

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


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

역방향 프록시를 이용한 도커 기반 마이크로 서비스 시나리오
  • front 프로그램 서버 컨테이너
  • task 마이크로 서비스 서버 컨테이너
  • user 마이크로 서비스 서버 컨테이너
  • mysql 컨테이너(기존 실습)
  • nginx 역방향 프록시 컨테이너(기존 실습 활용)
클라우드서버(우분투 게스트)에 필요한 폴더 생성

# front 프로그램은 기존 html 폴더와 연결
mkdir php
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


20231017145658_ceb413721b5a2207f1b1e4471581a9f1_enbh.png

기존 역방향 프록시 삭제 후 다시 설정(--net php-mysql  추가)

docker run -d --name myproxy --net php-mysql -p 8181:8181 -p 80:8080 -p 443:4443 -v /docker/appdata/nginx-proxy-manager:/config:rw jlesage/nginx-proxy-manager


역방향 프록시 host 설정 20231017150031_ceb413721b5a2207f1b1e4471581a9f1_22qo.png

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

20231017150357_ceb413721b5a2207f1b1e4471581a9f1_cl0z.png

http://gctask.com/ 접속

20231017151403_ceb413721b5a2207f1b1e4471581a9f1_2ltv.png

프로그램 분리
  • front 프로그램과 task api 프로그램과 분리
20231017151527_ceb413721b5a2207f1b1e4471581a9f1_nkc0.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 설정

20231017151900_ceb413721b5a2207f1b1e4471581a9f1_k2iz.png

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

20231017152001_ceb413721b5a2207f1b1e4471581a9f1_g2it.png

댓글목록0

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