健康检查HAProxy Docker容器的问题

时间:2018-12-10 14:39:17

标签: docker docker-compose haproxy

HAProxy image带有一个非常紧凑的debian版本,无需ping,wget,curl或其他用于验证的命令。如何为其使用docker-compose健康检查,以验证HAProxy是否已启动并正在运行?

2 个答案:

答案 0 :(得分:0)

您将在传递给docker容器的haproxy.cfg中配置运行状况检查。健康检查部分可能如下所示:

frontend frontend_name
  ...
  use_backend healthcheck if { path_beg /health }

backend healthcheck
  server disabled-server 127.0.0.1:1 disabled
  errorfile 503 /path/to/template.html

以及健康检查模板文件:

HTTP/1.0 200 OK

Cache-Control: no-cache

Connection: close

Content-Type: text/plain


up

此方法的工作原理是运行状况检查后端,您可以从前端将其路由到您喜欢的/ health等路径。错误文件指令允许您返回自定义错误响应(在本例中为200),而不是使用503进行响应。

答案 1 :(得分:0)

类似的事情可能会起作用:

echo“”> / dev / tcp / $ {HOSTNAME} / $ {PORT} || 1号出口

使用带有bash的内置/ dev / tcp来测试与您知道HAProxy应该在其上运行的端口的连接,并且如果无法连接将失败。