现在我们有一个动态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
答案 0 :(得分:0)
HAProxy中声明的server
是单个目标IP地址。即使该IP地址是动态的并且可以改变,如1.6中现在可能的那样,server
仅是/始终/永远是单个目的地,而不是随每个请求而改变的目标。您正在考虑的是与HAProxy的设计不一致。
必须事先声明您的后端服务器。您可以通过stats套接字创建虚拟变量并进行修改,动态配置可以通过编写配置文件生成过程(使用外部工具)编写脚本然后重新加载HAProxy来实现,但是......它没有内部概念与您正在考虑的内容相匹配
此外,当然,即使它确实存在,也是您计划的一个问题 - 它代表了一个潜在的安全漏洞:如果HAProxy要解释%[Host]
(我假设它是%[req.hdr(host)]
)作为IP地址,不需要解决方案,并且您只是对在主机标头中传递IP地址的任何人进行内部访问。