[실습] 도커 실습 6 - 역방향 프록시를 이용한 마이크로 서비스
필기자
2024-10-29 15:06
381
0
본문
도커 (Docker)
도커와 마이크로서비스의 관계
역방향 프록시를 이용한 도커 기반 마이크로 서비스 시나리오
각 컨테이너 생성 및 실행
기존 역방향 프록시 삭제 후 다시 설정(--net php-mysql 추가)
역방향 프록시 host 설정
윈도우에서 host 파일에 도메인 추가
http://gctask.com/ 접속
프로그램 분리
app.js 상단 수정
database.php 상단 Cross Origin 관련 문구 삭제
역방향 프록시 Custom locations 설정
http://gctask.com/ 접속 후 기능 테스트
- 도커는 컨테이너 기반의 오픈소스 플랫폼임.
- 애플리케이션과 그 의존성을 컨테이너로 패키징하여, 어디에서나 동일하게 실행할 수 있게 함.
- 도커 컨테이너는 가볍고 이식성이 높아서, 마이크로서비스 아키텍처와 잘 어울림.
- 마이크로서비스는 하나의 큰 애플리케이션을 작은, 독립적인 서비스 단위로 분리한 아키텍처 패턴임.
- 각 서비스는 독립적으로 배포하고 운영할 수 있으며, 다른 서비스와 네트워크를 통해 통신함.
- 마이크로 서비스 아키텍처는 애플리케이션의 확장성, 유지보수성, 장애 격리 등을 향상시킬 수 있음.
- 도커 컨테이너는 마이크로서비스를 구현하고 배포하는 데 이상적인 방법을 제공함.
- 각 마이크로서비스는 독립적인 컨테이너로 실행할 수 있으며, 이 컨테이너들은 동일한 호스트나 다른 호스트에 배포할 수 있음.
- 도커 컨테이너를 사용하면, 개발부터 테스트, 스테이징, 프로덕션까지 일관된 환경에서 애플리케이션을 실행할 수 있음.
역방향 프록시를 이용한 도커 기반 마이크로 서비스 시나리오
- front 프로그램 서버 컨테이너
- task 마이크로 서비스 서버 컨테이너
- user 마이크로 서비스 서버 컨테이너
- mysql 컨테이너(기존 실습)
- nginx 역방향 프록시 컨테이너(기존 실습 활용)
# 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
기존 역방향 프록시 삭제 후 다시 설정(--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 설정
윈도우에서 host 파일에 도메인 추가
- C:\Windows\System32\drivers\etc
맥OS에서 host 파일에 도메인 추가
- /etc/hosts
#아래 내용용 입력후 저장
192.168.47.128 gctask.com
#hosts 변경 적용
sudo dscacheutil -flushcache
http://gctask.com/ 접속
프로그램 분리
- front 프로그램과 task api 프로그램과 분리
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 설정
http://gctask.com/ 접속 후 기능 테스트
댓글목록0