Nginx의 역방향 프록시의 개념은 이러하다.
원래라면 http://myHomeIp.synology:dockerPort
로 kibana , CMAK , Jenkins 홈을 GUI를 사용했는데 이젠 NginX를 통해 컨테이너에 접근하고 Https 보안까지 가능해진 것이다.
Jenkins와 GitHub의 WebHook 또한 Https 프로토콜을 이용해야 했기 때문에 NginX는 필수 적이었다.
Jenkins 와 Github WebHook 을 연동하려고 하는데
Github에서 https로 웹훅을 요청 하는데 Nas에서는 Http로 설정 되어있어서
NginX로 리버스 프록시를 사용한 주소가 필요했다.
필자는 Synology 의 NAS를 사용하지만 일반 docker 사용자도 똑같이 따라하면 된다.
docker-compose로 설치하면 편하지만 GUI로 설명한다.
docker-compose 설정은 아래 더보기에 첨부한다
docker-compose.yml
version: "2"
services:
nginx:
image: jc21/nginx-proxy-manager:latest
ports:
- 12122:80
- 12121:443
- 81:81
volumes:
- /volume1/docker/nginx/data:/data
- /volume1/docker/nginx/letsencrypt:/etc/letsencrypt
restart: on-failure
1 . Nas docker 폴더에 마운트할 폴더를 생성한다.
2.Nas docker에 url로 이미지 추가를 누른후 URL을 입력한다.
https://hub.docker.com/r/jc21/nginx-proxy-manager
3. 이미지를 다운 받은 후 컨테이너를 실행 시킨다.
NginX의 기본포트는 80(http) / 443(https) / 81(NginX설정페이지) 를 사용한다.
그런데 NAS도 기본포트로 80 / 443 을 사용하기 때문에 다른 포트로 매핑(연결)시켜주어야 한다.
80 을 8080 (보통 80 과 8080은 다른 툴에서 많이 사용하니 최대한 다른포트로 매핑해주자)
443을 8443 과 매핑
81 을 81 (NAS에서 81포트는 사용하지 않기때문에 그대로 매핑)로 매핑 시켜준다 .
이 개념은 포트포워딩 (포트 넘겨주기) 개념인데 위에 방식이 이해가 가지 않는다면 포트포워딩을 공부하고 다시 보는게 좋다.
4. 아까 만들어준 폴더와 매핑시켜준다.
폴더마운트 ( 볼륨설정 ) 을 해줘야 하는 이유 ?
설정을 로컬저장소에 가지고 있어서 컨테이너가 날아가도 로컬 저장소에 가지고 있는 폴더를 다시 매핑시켜 바꾼 설정들을 고대로
새로운 컨테이너에 적용시킬 수 있다.
여기까지 도커 컨테이너 설정 완료.
'개-발 > Infra' 카테고리의 다른 글
[Docker] SpringBoot 프로젝트 올리기 (2) | 2023.11.28 |
---|---|
[NginX] docker NginX (NPM) 역방향프록시 설정 NAS 2 (1) | 2023.11.25 |
[Elastic] 유저 추가 (0) | 2023.06.17 |
[Kafka] kafka 용어 간단정리 (0) | 2023.06.16 |
[Kafka] kafka 로그적재 (feat.Spring boot) (0) | 2023.06.15 |