我目前使用 HAProxy 作为两个 Web 服务器的负载均衡器,并通过“统计”页面进行管理。最近几次我进行部署时(将一台服务器置于维护模式,更新它,将其重新设置为 READY,然后执行另一台服务器),我注意到每当页面刷新时,状态都会不断变化。例如:
node0
将我的服务设置为MAINT
- 行变为棕色,显示为向下。- 10 秒后,我刷新统计页面,
node0
现在显示绿色且向上 - 再次刷新统计页面,
node0
现在显示因维护而停机。 - 开始执行更新
node0
,返回统计页面。node0
现在显示为。 - 将 的状态设置
node0
为MAINT
,显示为向下。 - 完成更新,将 的状态设置
node0
为READY
。行显示node0
为 向上。 node1
将 的状态设置为MAINT
。- 从我的正常运行时间监视器收到通知,说我的网站已关闭。
- 刷新统计页面,两个节点均处于
MAINT
。 - 恐慌并再次设置
node0
为READY
。统计页面刷新并将两个节点显示为READY
。
...ETC...
这显然对我的用户和我的血压不利,因为我觉得我不能相信 HAProxy 能够准确可靠地报告我的应用程序的状态。我的问题是:
- 还有其他方法可以查看 HAProxy 的状态吗?例如 CLI。从文档中我可以看到,
haproxy
它仅用于管理 HAProxy 服务本身。 - 还有其他 HAProxy 用户遇到过这种情况吗?你找到解决方法了吗?
我正在使用 HAProxy 1.5.18
答案1
听起来您有多个 HAProxy PID 正在运行。检查统计信息页面上报告的 PID 在刷新之间是否保持一致。
除此之外,您还可以使用 socat 通过 CLI 与 HAProxy 进行交互。请参阅文档在这里以获取有关如何操作的信息。