我正在使用Docker在逆向代理之后部署大量的微服务。 我想基于DNS查询来平衡我的微服务,并且允许在代理启动后自动进行故障转移和重新平衡。
我正在寻找一个代理服务器,支持DNS查询返回的服务器之间的负载平衡。 因此,例如test.local返回服务器192.168.1.1,192.168.1.2,192.168.1.3,我想负载均衡之间的stream量,并做一些标准的反向代理重新路由的东西。
Nginx在启动时会执行DNS查询,但不会定期执行DNS查询,并且可以兑现TTL,除非您拥有昂贵的Nginx Plus。 如果我随着服务器的更改周期性地重新启动我的代理服务器,那么它可能会工作,但这会抛出不好的请求,并不是一个好的解
我看了看是否可以用Apache来完成,但是我还没有find任何东西。
任何帮助设置这将是不胜感激,因为这是我需要让我的服务器容错的难题的最后一块。
你已经清楚地达到了复杂程度,你将无法使用普通docker处理。
此时,您需要开始使用更高级别的抽象工具来pipe理您的资源。 明显的select是:
你没有提供足够的关于底层平台的细节,这将有助于select一个。 我个人的偏好是Kubernetes,因为我可以从几乎任何平台上抽象出来,而且我可以进一步抽象,使用OpenShift或Tectonic提供更高级别的function。
Kubernetes使用容器作为最小抽象单位来操作容器。 这使得Kubernetes集群可以根据不同的探测协调并将stream量定向到Pod。
实际上,这意味着您可以在不停机的情况下执行新容器的部署,如果探测器返回失败,并且回滚部署(蓝/绿策略),Kubernetes将创build新的容器。
这几乎不能抓住Kubernetes可以做的事情的表面。 如果你有兴趣,该项目有一个非常好的文档 。
看看这个可能能够满足您的要求的github回购: https : //github.com/StalkR/dns-reverse-proxy
安装go软件包,创buildDebian软件包,安装:
$ 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在
/etc/default/dns-reverse-proxy并以/etc/init.d/dns-reverse-proxystart开始。