HAProxy 不会自动重新加载 DNS

Kay*_*maz 5 internal-dns haproxy amazon-route53 debian-stretch

我已经在 Debian Stretch (9) 上安装了 HAProxy 1.7.5-2,用于蓝/绿部署基础设施。

HAProxy 在 TCP 模式下设置并每 5 秒重新加载 DNS,但它没有。

global
    log 127.0.0.1 local0 warning
    stats socket /run/haproxy/admin.sock mode 660 level admin
    stats timeout 10m
    user haproxy
    group haproxy
    daemon

# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private

# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL). This list is from:
#  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
# An alternative list with additional directives can be obtained from
#  https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3

defaults
    log     global
    mode    tcp
    option  dontlognull
    timeout connect 360s
    timeout client  300s
    timeout server  300s
    retries         99999

resolvers aws-vpc-dns
    nameserver vpc     {DNSIP}:53
    resolve_retries    30
    timeout retry      1s
    hold valid         5s

frontend site-frontend
    bind *:80
    use_backend site-backend

backend site-backend
    balance roundrobin
    server company-www target.services.company.com resolvers aws-vpc-dns

listen blue-webapp-http
    bind :9000
    balance roundrobin
    server company-blue blue.services.company.com resolvers aws-vpc-dns
Run Code Online (Sandbox Code Playgroud)

当我将 DNS 记录更改为其他内容时,hostHAProxy 服务器上的命令会正确返回新地址。

重新加载/重新启动 HAProxy 服务是我目前找到的唯一方法。

关于可能是什么问题的任何线索?

Ale*_*exD 5

用于的主机名serverhaproxy启动期间解析配置文件或在运行状况检查期间解析。您没有为您定义任何检查server,因此您只能在重新启动/重新加载期间获取更新的主机名。如果您希望server主机名在运行时更新,则需要定义运行状况检查。

有关详细信息,请参阅 HAProxy 文档使用 DNS 进行服务器 IP 地址解析

  • 根据 https://www.haproxy.com/blog/dns-service-discovery-haproxy/ 切换到 HAProxy 1.8 还允许在运行时进行 DNS 解析,而不考虑运行状况检查。 (2认同)