Назад | Перейти на главную страницу

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

Когда вы хотите использовать имена хостов, а не 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

Дополнительный кредит Вместо того, чтобы перечислять каждый узел в вашей конфигурации, вы также можете использовать циклическую запись DNS в своем URL-адресе. Это означает, что вы также можете уменьшить изменения конфигурации, необходимые при добавлении / удалении узлов из кластера, и изменить только запись 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