Haproxy

HAProxy 不會自動重新載入 DNS

  • October 9, 2018

我在 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

當我將 DNS 記錄更改為其他內容時,hostHAProxy 伺服器上的命令會正確返回新地址。

重新載入/重新啟動 HAProxy 服務是我目前找到的唯一方法。

關於可能是什麼問題的任何線索?

用於serverhaproxy啟動期間解析配置文件或在健康檢查期間解析的主機名。您沒有為您定義任何檢查,server因此您只能在重新啟動/重新載入期間獲取更新的主機名。如果您希望server在執行時更新主機名,您需要定義健康檢查。

有關詳細資訊,請參閱使用 DNS 的 HAProxy 文件伺服器 IP 地址解析

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