[Docker] 사설 DNS 서버 구축 및 리버스 프록시로 내부 웹 서버 연결하기 (Technitium, Nginx) + window 및 Ovpn dns 설정 방법
·
Infra/Docker
# 1. 개요 회사에서는 다양한 IP, Port를 활용한 서버들이 존재한다. 히지만 ip 와 port를 모두 기억하기란 어려운 법이다.이 ip, port 들을 저장하는 문서가 따로 있지만, 바로바로 접속할때 한달만 지나면 까먹게 된다.또한, 거의 내부망이니까 거의 같은 ip로 시작해서 바로 접속하기도 어렵다. ex) 10.0.~~ 이를 해결하기 위해 사설 dns 서버를 설치하고, nginx로 리버스 프록시하여 각각의 웹서버를 쉽게 접속하는 꿀팁?을 전하려고 한다. # 2. 사전 이해## DNS 접속 흐름DNS 접속 흐름은 다음과 같다. 컴퓨터 내에 있는 hosts 파일을 읽는다. (여기에 localhost와 127.0.0.1이 지정되어있음)로컬 DNS 캐시 확인설정된 DNS 서버를 통해서 domain과 ..
[IPv6] Spring boot로 ipv6 통신 해보기(+개념)
·
Infra/네트워크
# IPv6의 탄생 기존의 IPv4의 주소 고갈 문제를 해결하기 위해 128비트의 크기로 확장한 차세대 인터넷 프로토콜 주소이다. (43억 -> 거의 무한)실제로 aws에서는 원래 IPv4를 무료로 제공해주는데, 유료로 변경되는 경우도 있었다. # 사용 이유 matter라는 오픈소스 iot 보안 프로토콜을 커스텀을 하는데, discovery를 할 때 ip가 IPv6로 나오는 상황이 발생했다.여기서 확인된 ip로 통신을 해야 하기에, IPv6로 spring boot와 통신을 하도록 구현했다. # 개발 필자는 동적으로 url이 변경이 되어야 했기에, 기존의 spring cloud의 feign client 대신에 커스텀 http client를 개발했다.개인PC에서 테스트한 결과 IPv6로 통신이 잘 안되었다...
[Docker] 손쉽게 프록시 서버 관리하기 NPM(nignx proxy manager)
·
Infra/Docker
# 프록시 서버를 손쉽게 배포 및 관리하는 서비스 대개, 웹서비스를 구축하면, 프론트와 백엔드를 나누어 프록시 서버로 관리한다. 이 때, 도메인이 하나일때, 서브도메인으로 다양한 서버를 분리한다. 이럴 때 npm을 통해 손쉽게 분리 가능하다.또한, ssl인증서도 자동으로 업데이트 및 원클릭으로 설정을 해줘서 https를 손쉽게 설정 가능하다.그리고 세부 설정은 npm 내부 파일을 수정하면 가능하니, 좀 더 깊게 알아보면, 커스텀또한 가능하다. (대신 웹에서 설정하면 초기화 될 가능성 있음) # 배포docker로 배포를 간단하게 진행 할 수 있다.여기서 80, 443을 nginx에서 받아야하기 때문에 남겨두고, 81은 nginx 통합 관리 페이지 이다. docker network create npm-net..