2017-05-20 10 views
-1

현재 다른 응용 프로그램의 docker nginx 컨테이너를 구분하는 수동 업데이트 백엔드와 함께 haproxy를 사용하고 있습니다.docker 컨테이너에 대한 동적 DNS 프록 싱에 가장 적합한 소프트웨어

호스트 이름을 기반으로 다른 로컬 nginx 컨테이너에 프록시 요청을 보내는 가장 좋은 소프트웨어는 무엇입니까?

나는 간단한 맵 파일이 있거나 것도/etc/hosts 파일/고정 표시기 용기, 예를 들어, 변경할 때 내 스크립트를 업데이트 할 것이다 :

domain1 1.1.1.1 
domain2 1.1.1.2 
domain3 1.1.1.3 

haproxy 될 것입니다 그래서 이상 -> 일부 소프트웨어 프록시 또는 DNS -> 도커 nginx

및 소프트웨어는 비행 중에 맵 파일을 사용하고 로컬 IP 주소로 다시로드 및 요청하지 않습니다.

어쩌면 것 너무 그와 호환 될 필요가있다, 그래서 내가 앞에 니스 캐시를 둘 것입니다 (이유가없는 것) 때문에 흐름 :

요청 -> haproxy (여러 서버에 부하 분산을위한)

- 공공 서버 IP에> 니스 (메모리에 캐시 호스트와 경로에 따라, 그래서 즉시 캐시 반환 응답이있는 경우)

- 프록시를 더욱 것이다 SIMPLE MAP 파일을 기반으로> 일부 프록시 또는 DNS 다중 도커 nginx 컨테이너 중 하나의 로컬 IP로

,

- 사용자 정의 네트워크 내부> 고정 표시기의 nginx를

->

어떤이 흐름에 대한 가장 좋은 방법은,이다 내가 다른 곳에서 니스를 넣어해야하고, 내가 추구하고 소프트웨어가 무엇 용기

에서 일부 응용 프로그램?

저는 현재 custom ns.x 파일을 사용하고 사용자 지정 maps.conf 파일에서 $ host를 사용자 지정 IP 주소에 매핑하고 변경시 nginx를 정상적으로 다시로드하지만이 경우 더 나은 해결책이 있다고 생각합니다.

또한 나는 맵 파일을 기반으로하는 HTTP 프록시 만 필요하지만 tcp (ssh, smtp, ftp ..)는 필요 없다는 것을 잊어 버렸습니다.이 경우 haproxy와 varnish가 전면에 없을 것입니다. 그 항구에서 공개적으로 직면하게 될 것입니다. 예를 들어

는 :

port:22 
domain1 1.1.1.1 
domain2 1.1.1.2 
domain3 1.1.1.3 

port:25 
domain1 1.1.1.4 
domain2 1.1.1.5 
domain3 1.1.1.6 

답변

0

나는 당신이 원하는 것은하는 dnsmasq 생각합니다. 기본적으로 docker 컨테이너를 실행하는 호스트에서 실행되는 경량의 DNS 서비스이며 IP 주소 대신 호스트 이름을 사용할 수 있습니다. 이 문제를 해결하는 가장 일반적인 방법입니다.

하는 dnsmasq를 설정하는 좋은 가이드

에서 찾을 수 있습니다 :

http://docs.blowb.org/setup-host/dnsmasq.html

와하는 dnsmasq 및 고정 표시기를 검색하는 것은 더 많은 자원을 가리 킵니다.

haproxy 호스트에 기억해야 할 점은 dnsmasq 서버를 포함하도록 /etc/resolv.conf를 수정해야합니다.