基于通配符的基于Haproxy DNS的后端

时间:2016-06-10 07:59:50

标签: dns haproxy sni

现在我们有一个动态DNS解析后端与Haproxy 1.6,我一直想知道我是否可以解决端点到动态后端。这就是我要找的东西:

resolvers docker
nameserver dnsmasq 127.0.0.1:53

defaults
mode http
log global
option httplog

frontend f_myapp
bind :443
default_backend b_myapp

backend b_myapp
server services *:443 check resolvers docker resolve-prefer ipv4

OR

server services [%Host]:443 check resolvers docker resolve-prefer ipv4

这样我就不必触摸haproxy的配置,只使用DNS来更新后端路由。

由于 的Alessandro

1 个答案:

答案 0 :(得分:0)

HAProxy中声明的server是单个目标IP地址。即使该IP地址是动态的并且可以改变,如1.6中现在可能的那样,server仅是/始终/永远是单个目的地,而不是随每个请求而改变的目标。您正在考虑的是与HAProxy的设计不一致。

必须事先声明您的后端服务器。您可以通过stats套接字创建虚拟变量并进行修改,动态配置可以通过编写配置文件生成过程(使用外部工具)编写脚本然后重新加载HAProxy来实现,但是......它没有内部概念与您正在考虑的内容相匹配

此外,当然,即使它确实存在,也是您计划的一个问题 - 它代表了一个潜在的安全漏洞:如果HAProxy要解释%[Host](我假设它是%[req.hdr(host)])作为IP地址,不需要解决方案,并且您只是对在主机标头中传递IP地址的任何人进行内部访问。