如果无法连接到Unicorn,则使HAProxy后端nginx服务器停止旋转

我有一个运行HAProxy的负载平衡器,两个后端服务器都运行Nginx到Unicorn。

如果nginx在其中一个盒子上出现故障,HAProxy将把它从设备中取出,服务继续运行。

如果独angular兽出现故障,nginx开始提供502错误,HAProxy将它们快乐地转发给客户端。

正如我所看到的,有两种可能的解决scheme:

  • 如果nginx无法连接到独angular兽,则configurationnginx不响应。 HAProxy会考虑它,不再发送请求。
  • haproxyconfiguration为将502s视为服务器停机,而不向其发送更多请求。

我也不知道该怎么做

从独angular兽来看,如果应用程序启动并运行良好,您将拥有一个“ping”页面,并以“OK”作为响应。 然后使用http-check-expect将该页面用作haproxy中的健康检查。

感谢@ florin-asavoaie指导我写这篇文章的方向。 这是一个完整的写作:

我已经在/状态返回了一个JSON页面{“status”:“up”}

所以我补充说

option httpchk GET /status http-check expect string up 

到haproxy.cfg中的后端并重新启动haproxy