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을 기반으로 커스텀 도커 이미지를 만든 후, 이 이미지를 이용하여 컨테이너를 실행하기 위함이다
Dockerfile 작성
docker build
명령어 실행
docker run
명령어로 컨테이너 실행
도커 컴포즈로 구성
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
- 도커 컴포즈로 구성
http://app1-127-0-0-1.nip.io => app-1 스프링부트(proxy pass)
http://app1new-127-0-0-1.nip.io => app-1 스프링부트(proxy pass)
http://app2-127-0-0-1.nip.io => app-2 스프링부트(proxy pass)
http://app2new-127-0-0-1.nip.io => app-2 스프링부트(proxy pass)
http://app1-127-0-0-1.nip.io 와 http://app1new-127-0-0-1.nip.io (은)는 같은 스프링 부트로 연결됩니다.
http://app2-127-0-0-1.nip.io 와 http://app2new-127-0-0-1.nip.io (은)는 같은 스프링 부트로 연결됩니다.
app-2 는 기존 app-1 의 소스코드를 가지고 만들어주세요.