HAProxy 在服务器配置中使用 URL?

HAProxy 在服务器配置中使用 URL?

现在,我的配置如下:

server node1 10.20.x.y:80 check
server node2 10.20.x.y:80 check
server node3 10.20.x.y:80 check

这里使用 URL 而不是 IP 的最佳方法是什么?

类似于(但这似乎不起作用):

server node1 url-1.google.com:80 check
server node2 url-2.google.com:80 check
server node3 url-3.google.com:80 check

答案1

当您想使用主机名而不是 IP 地址时,这在 HAproxy 术语中称为 DNS 解析。您需要指定“解析器”配置 DNS 的部分。例如:

resolvers mydns
  nameserver dns1 10.0.0.1:53
  nameserver dns2 10.0.0.2:53
  resolve_retries       3
  timeout resolve       1s
  timeout retry         1s
  hold other           30s
  hold refused         30s
  hold nx              30s
  hold timeout         30s
  hold valid           10s
  hold obsolete        30s

然后,您必须resolvers在需要 DNS 解析的每个服务器行上精确指定一个参数。

server s1 app1.example.com:80 resolvers mydns resolve-prefer ipv6

额外积分您还可以在 URL 中使用循环 DNS 记录,而不是枚举配置中的每个节点。这意味着您还可以将添加/删除集群中的节点时所需的配置更改减少到仅更改 DNS 记录。

DNS 记录将如下所示:

app1.example.com. IN A 192.0.2.1 
app1.example.com. IN A 192.0.2.2 
app1.example.com. IN A 192.0.2.3 

相关内容