我过去常常在没有任何自定义网络配置的情况下使用 aws beanstalk,因此我的所有应用程序都能够在没有任何网络问题的情况下相互调用,因为它们处于默认的公共网络设置中。 每当我尝试将它们置于自定义网络设置中时,都会错过 websocket 功能,但是 ALB 已经支持它并且之前工作正常。
我的应用程序是一个基于 .net 核心的聊天机器人应用程序,内部服务在私有子网中使用 websocket 及其 loadbalncer,并由同一 vpc 中公共子网中的另一个服务调用。 websocket 工作的一个明显迹象是内部服务仪表板中消息的实时更新,但现在我面临着实时检索消息的问题,我应该刷新页面以获取最新更新。
我已经检查了所有服务之间的网络可达性,并且能够正常解析域和处理请求, 另外,使用浏览器检查,我只能看到两个失败的 500 请求
我已经检查了 ec2 实例和负载均衡器的安全组,并且所有配置都正确:
我已经检查了 ALB 中的问题,因为它可能不支持 websocket,但经过广泛搜索后,我发现新版本的 ALB 本机支持 HTTP/2 协议版本的 websocket,并且 websocket 在创建之前工作正常自定义网络,我不需要触摸 loadbalncer 配置。