DNS Reverse Proxy

1

Estou usando o Docker para implantar muitos serviços de micro por trás de um proxy reverso. Eu gostaria de balancear a carga dos meus serviços de micro com base em consultas DNS e também permitir failover e rebalanceamento automatizado depois que o proxy foi iniciado.

Estou procurando um servidor proxy que ofereça suporte ao balanceamento de carga entre os servidores retornados de uma consulta DNS. Então, por exemplo, test.local retorna servidores 192.168.1.1, 192.168.1.2, 192.168.1.3 e eu gostaria de carregar o tráfego de balanceamento entre eles e fazer algumas coisas de reencaminhamento de proxy reverso padrão.

O Nginx faz a consulta DNS na inicialização, mas não realiza a consulta DNS periodicamente e honra o TTL, a menos que você tenha o Nginx Plus, que é caro. Se eu reiniciar meu proxy periodicamente enquanto os servidores mudam, isso pode funcionar, mas isso causaria problemas e não seria uma boa solução.

Eu olhei para ver se isso pode ser feito com o Apache, mas não encontrei nada.

Qualquer ajuda para configurar isso seria muito apreciada, pois é a última peça do quebra-cabeça que preciso para ter meus servidores tolerantes a falhas.

    
por robwithhair 06.12.2016 / 14:59

2 respostas

1

Você atingiu claramente um nível de complexidade que você não conseguirá usar com docker normal.

Neste ponto, você precisa começar a usar uma ferramenta de abstração de nível superior para gerenciar seus recursos. As escolhas óbvias são:

Você não fornece detalhes suficientes sobre a plataforma subjacente que ajudaria na escolha de um sobre o outro. Minha preferência pessoal é o Kubernetes, porque posso abstrair de praticamente qualquer plataforma, e posso abstrair ainda mais para fornecer recursos de nível superior usando o OpenShift ou Tectônico .

O Kubernetes opera em contêineres usando o pod como a unidade de abstração mínima. Isso permite que um cluster do Kubernetes orquestre e direcione o tráfego para pods com base em diferentes probes.

Na prática, isso significa que você pode executar implantações de novos contêineres sem tempo de inatividade, fazer com que o Kubernetes crie novos contêineres, caso a sonda retorne falhas, e até mesmo reverta a implantação (estratégia azul / verde).

Isso apenas arranha a superfície do que o Kubernetes pode fazer. Se você estiver interessado, o projeto tem uma documentação muito boa .

    
por 06.12.2016 / 17:09
0

Confira este repo do github que pode ser capaz de atender às suas necessidades: link

Install go package, create Debian package, install:

$ go get -u github.com/miekg/dns
$ go get -u github.com/StalkR/dns-reverse-proxy
$ cd $GOPATH/src/github.com/StalkR/dns-reverse-proxy
$ fakeroot debian/rules clean binary
$ sudo dpkg -i ../dns-reverse-proxy_1-1_amd64.deb

Configure in /etc/default/dns-reverse-proxy and start with /etc/init.d/dns-reverse-proxy start.

    
por 02.03.2017 / 03:13