如何将 Haproxy 服务器标记为初始关闭

如何将 Haproxy 服务器标记为初始关闭

我有一个haproxy.cfg在添加新服务器时动态更新的服务器,但在添加新服务器时,服务器可能仍在启动。(服务器最初并不健康)。因此,50x在引入新服务器时,我会收到一些错误。

我几乎无法控制这个时间,但我可以控制在服务器和后端设置的参数。

有没有办法可以在服务器或后端设置参数,使得新服务器在正常运行之前不会承受流量?

这是我当前后端的一个示例:

backend my_backend
  balance roundrobin
  mode http
  option  httpchk GET /actuator/health
  timeout check 5s
  server 10_48_111_20_31623 10.48.111.20:31623 check inter 10s fall 4
  server 10_48_111_55_31430 10.48.111.55:31430 check inter 10s fall 4
  server 10_48_111_55_31479 10.48.111.55:31479 check inter 10s fall 4 

答案1

实现此目的的最佳方法是通过 haproxy 的管理套接字。重新加载新配置后,您可以发送 haproxy 命令将服务器标记为离线。请参阅http://cbonte.github.io/haproxy-dconv/1.7/management.html#9.3有关使用管理套接字的更多信息。

答案2

我认为一个可能的解决方案是检查特定的页面/字符串,该页面/字符串仅在服务器完成配置并完全运行时放置。例如;

backend webservers
option httpchk GET /keepalive.html HTTP/1.1\r\nHost:\ www.checkvhost.com
http-check expect string Checkstring
server web1 web1:80 check cookie web1

答案3

至少有两种选择:

  1. 延迟添加服务器,直到它完全正常工作。如果这不可行,您可以尝试选项 2。
  2. 将服务器添加为备份服务器。因此,将不会联系该服务器(除非所有其他服务器都已关闭)。当您确定服务器已启动并正在运行时,您可以删除备份标志并重新加载配置。

相关内容