我正在使用以下配置片段
backend test_http_back
balance roundrobin
server some_hostname host.somesite.com:8080 check
host.somesite.com 在 DNS 中有两个 IP 地址
理想情况下我会放
backend test_http_back
balance roundrobin
server host_A u.x.y.z:8080 check
server host_A a.b.c.d:8080 check
但是 IP 地址不是静态的,这引发了第二个问题,主机名是否仅在加载配置时才解析?这并不是什么大问题,因为我可以控制 IP 何时更改并可以重新加载 haproxy 的配置。每次 IP 更改时都必须更改配置文件,这会带来更大的问题。
提前致谢
我也有类似的情况,并且对 HAProxy 有点陌生,不熟悉配置后端来管理它的“正确方法”。 根据有限的经验,我们目睹的行为是 HAProxy 在启动时解析后端服务器主机名,从 DNS 服务器中选择列表中第一个 IP 地址。 在我们的例子中,主机名解析为三个 IP 地址,其中之一是“坏”的。 如果 HAProxy 在启动时恰好选择了“坏”IP,则前端点击会返回 503/NOSRV 错误,并且 HAProxy 不会尝试重新解析主机名或尝试之前收到的其他 IP 之一建立成功的后端连接。 在这种情况下,我们唯一的解决方法是重新加载(或重新启动)HAProxy 服务,以便有希望获得“工作”IP 地址。
我希望后端有一个可用的配置设置可以自动管理这种情况?
我是这样解决这个问题的:
backend mssql mode tcp option tcp-check server mssql mssql-server:1433 check resolvers my-resolvers server mssql1 mssql-server:1433 check resolvers my-resolvers