假设我在localhost:9000上运行tcp服务器,在localhost:8000上运行HTTP服务器.HTTP服务器公开URL"/ healthz",如果tcp服务器正常,则返回200;如果tcp服务器不健康,则返回500.也就是说,执行:
curl localhost:9000/healthz
Run Code Online (Sandbox Code Playgroud)
将返回状态200或状态500,具体取决于tcp服务器的运行状况.
我希望HAProxy使用localhost:8000/healthz作为tcp服务器的运行状况检查.那可能吗?
小智 4
回答这个问题以防有人来这里寻找答案。
我本以为这行不通,因为你混合了 HTTP 和 TCP,但它似乎是可能的。我刚刚用 v1.4.24 进行了测试。技巧是指定一个不同的端口来检查后端的服务器线路。这是适合我的配置片段。
前端 httpfrontend 绑定*:8080 模式 http 选项 httplog default_backend http 后端 后端 http 后端 平衡循环赛 模式 http 选项 httplog 选项 httpclose reqadd X-Forwarded-Proto:\ http 服务器 server1 本地主机:8000 前端 TCP 前端 绑定*:1080 TCP模式 选项 tcplog default_backend TCP 后端 后端 TCP 后端 TCP模式 选项 tcplog # 指定在后端运行的健康检查的格式 选项 httpchk GET /healthz HTTP/1.0\r\n用户代理:\ LB-Check\ TCP # check -> 打开对此服务器的检查 # port 8000 -> 将检查发送到后端服务器上的端口 8000(而不是 9000) # inter 60000 -> 每 60 秒检查一次 服务器 server1 localhost:9000 检查端口 8000 inter 60000
| 归档时间: |
|
| 查看次数: |
12785 次 |
| 最近记录: |