Haproxy

HAProxy 在伺服器配置中使用 url?

  • May 7, 2018

現在,我的配置如下所示:

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

當您想使用主機名而不是 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

然後,您必須在需要 DNS 解析的每個伺服器行上精確一個resolvers參數。

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 

引用自:https://serverfault.com/questions/910272