Я установил HAProxy 1.7.5-2 на Debian Stretch (9) для сине-зеленой инфраструктуры развертывания.
HAProxy настроен в режиме TCP и перезагружает DNS каждые 5 секунд, но этого не происходит.
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-запись на другую, host
команда на сервере HAProxy правильно возвращает новые адреса.
Перезагрузка / перезапуск службы HAProxy - единственный способ, который я нашел на данный момент.
Любая подсказка о том, в чем может быть проблема?
Имя хоста, используемое для server
решается во время haproxy
запускается при анализе файла конфигурации или во время проверки работоспособности. У вас нет проверок, определенных для вашего server
поэтому вы можете получить обновленное имя хоста только во время перезапуска / перезагрузки. Если вы хотите server
имя хоста, которое будет обновляться во время выполнения, вам необходимо определить проверки работоспособности.
См. Документацию HAProxy. Разрешение IP-адреса сервера с использованием DNS для подробностей.