gpt4 book ai didi

amazon-web-services - AWS ALB 运行状况检查通过 HTTP 而不是 Websocket

转载 作者:行者123 更新时间:2023-12-03 17:37:36 25 4
gpt4 key购买 nike

我在 Docker Swarm 中部署了一个应用程序,它有两个可公开访问的服务,HTTP 和 WS。

我创建了两个目标组,每个服务一个,注册的实例是 Docker Swarm 的管理者。然后我创建了 ALB 并添加了两个 HTTPS 监听器,每个监听器都指向特定的目标组。

现在问题来了。 HTTP健康检查通过没有问题,但是Websocket检查总是不健康,不知道为什么。根据 http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html ,使用 HTTP/HTTPS 监听器也应该适用于 WS/WSS。

在 WS 检查中,我尝试将 / 设为路径以及应用程序实际使用的路径 /ws .他们都没有通过健康检查。

这也不是与防火墙相关的问题。安全组是完全开放的,没有 iptables 规则,因此可以双向连接。

我从 Docker Swarm 中启动了 websocket 容器,只是为了测试它是否与 Swarm 相关(我很确定它不是,但是为了测试,它也不起作用,所以现在我'我有点不抱希望了。

我可能缺少什么配置,以便 HTTP 服务工作但 Websocket 服务不工作?。

更新

我又回到了这个问题,经过进一步研究,问题似乎出在目标组上,而不是 ALB 本身。通读文档 http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html ,我忘记启用粘性选项。但是,我只是这样做了,问题仍然存在。

更新 2

看起来 ELB 没有将连接从 HTTP 升级到 WebSocket。

最佳答案

ALB 不支持 websocket 运行状况检查:
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html
“健康检查不支持 WebSockets。”
问题是,尽管 AWS 声称 ALB 支持 HTTP2,但实际上它会将所有内容下采样到 HTTP1,然后执行它的操作,然后再次将其升级到 HTTP2,这破坏了一切。

关于amazon-web-services - AWS ALB 运行状况检查通过 HTTP 而不是 Websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45213473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com