Я использую Ubuntu 16.04; Я установил HAProxy как точку входа для служб, определяемых доменными именами; эти доменные имена обслуживаются DNS-сервером (coredns) на том же компьютере (или в сети VLAN). Используя утилиты nslookup или dig, получаем разрешение имени; но HAProxy выдает ошибку:
[ALERT] 134/160502 (25218) : parsing [/etc/haproxy/haproxy.cfg:57] : 'server example' : could not resolve address 'example.service.com'.
[ALERT] 134/160502 (25218) : Failed to initialize server(s) addr.
В моем файле /etc/haproxy/haproxy.cfg у меня есть раздел преобразователей, как показано ниже:
resolvers dnsmasq
nameserver ip 10.80.10.25:5353
resolvers coredns
nameserver ip 10.80.10.25:53
и я настроил интерфейс и бэкэнд, которые относятся к доменному имени, разрешенному обоими серверами, добавленными выше в качестве преобразователей:
frontend example-service
bind :80
mode http
default_backend example
backend example
mode http
balance roundrobin
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
option httpchk HEAD / HTTP/1.1rnHost:localhost
server example example.service.com resolvers coredns check inter 1000
С копанием у нас есть:
dig @10.80.10.25 -p 53 example.service.com +noall +answer
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> @10.80.10.25 -p 53 example.service.com +noall +answer
; (1 server found)
;; global options: +cmd
example.service.com. 3600 IN A 127.0.0.1