Docker(6) 보완 필요

별빛사막·2025년 2월 28일
0

docker

목록 보기
6/7
post-thumbnail

nginx가 없으면 포트를 다르게 해서 연결해야한다.
nginx는 컨트롤러, 거대한 if,switch문, 배구에서의 토스와 같은 역할을 한다.

+nginx가 없다면, 포트를 다 다르게 해서 매핑해줘야한다.
a.com:8080 → site1
b.com:8081 → site2
c.com:8082 → site3

+nginx가 있다면, 같은 포트로 요청이 들어와도 nginx가 분배?를 해준다.
a.com:80 → nginx → site1
b.com:80 → nginx → site2
c.com:80 → nginx → site3

브라우저와 nginx가 주고받는 정보는 암호화되어 있다.
(http: 암호화X , htpps : 암호화O)

포트로 구분 / 도메인으로 구분하는건 nginx에게는 쉽지만
사람에게는 도메인으로 구분하는게 편하다 → nginx를 사용해야한다!!

리버스 프록시

: 가장 먼저 nginx 가 정적파일캐시, SSL관련처리를 한 후 요청을 앱서버에게 토스하는 방식

스프링부트(app-1)를 먼저 띄우고 그 이후에 nginx(my-nginx-1)를 띄워야 한다.
초기 nginx가 시작할 때 http://app-1:8090 이 없다면 오류가 발생하기 때문이다.
이후 만약, 스프링부트(app-1) 업데이트를 위해 잠시 stop해 놓는다고 nginx는 꺼지지 않는다 → 다만 502 Bad Gateway 오류가 발생할 수 있음.
그렇기 때문에 처음에 nginx 컨테이너를 만들때만 순서를 유의해주면 된다.

=========67강, 68강 실습
docker build -t myname/app-1 . 명령어를 사용하는 이유는 Dockerfile을 기반으로 커스텀 도커 이미지를 만든 후, 이 이미지를 이용하여 컨테이너를 실행하기 위함이다

  1. Dockerfile 작성

    • 원하는 설정과 애플리케이션을 포함한 커스텀 이미지를 정의
  2. docker build 명령어 실행

    • Dockerfile을 기반으로 이미지를 생성
  3. docker run 명령어로 컨테이너 실행

    • 생성한 이미지를 기반으로 컨테이너를 실행

문제1

도커 컴포즈로 구성
http://app1-127-0-0-1.nip.io => app-1 스프링부트(proxy pass)
http://app2-127-0-0-1.nip.io => my-nginx-1:/web/site2/index.html

문제2

profile
조금씩 매일 성장하자

0개의 댓글