如何在 AWS 上的应用程序负载均衡器(容器服务)上使用唯一的健康检查端口?

How to use unique health check port on an Application Load Balancer (Container Service) on AWS?

我有一个域需要路由到应用程序负载均衡器和 EC2 实例,具体取决于 URL 路径。 Application Load Balancer 对每个 ALB 有 10 条规则的限制,我需要更多。

因此,为了解决这个 10 URL 秒的限制,我想按如下方式设置请求管道:

用于 domain.com 的 ALB -> Docker 带有路由 rules/reverse 代理的 HAProxy 容器 -> 路由到另一个 ALB 或 EC2 实例

设置很好,我在设置 HAProxy 及其运行状况检查时遇到问题。我希望 ALB 在不同的端口而不是流量端口上进行健康检查。在 HAProxy 中,我可以简单地设置多个前端,一个用于路由(端口 80),一个用于健康检查(端口 60000)。但是,如果我在 ALBs 目标组中输入端口 60000,由于动态映射,我无法部署其他服务。

有什么解决办法吗?我宁愿不在端口 80 上公开健康检查,因为它可用于 public 网络,但如果这是唯一的解决方案,那很好(但如何做?)。

我最终使用 monitor-uri 作为健康检查,这并不理想,因为它暴露在端口 80 上,但无论如何都没有显示秘密信息。