使用AWS Application Load Balancer的Websocket超时
在尝试使用Elastic Beanstalk环境中的应用程序负载均衡器专门为websockets使用端口时,会出现网关超时。
Web应用程序和websocket服务器被保存在一个Docker容器中,应用程序运行正常,但是wss://domain.com:8080只会超时。
这里是负载均衡器监听器,使用SSL证书的wss。
它指向的目标组是接受HTTP协议(我试过HTTPS),并转发到8080到EC2实例。 或者..应该是。 (似乎不是应用程序负载平衡器上的TCP选项)。
我查看了应用程序负载均衡器日志,它看起来像到达目标组,但超时了它与EC2实例的连接,并且我很难理解为什么。
所有AWS安全组目前已经在所有stream量上打开,我已经检查了主机,发现端口已打开并正在被Nginx监听,该端口将路由到正确的端口到docker容器:
docker ps
也给我看:
一旦进入容器,我可以看到Websocket服务器正在监听端口:
所以它不可能是EC2实例本身,可以吗? 在ALB中通过端口路由websockets是否存在问题?
– 编辑 –
ALB当前SG:
EC2实例SG:
Websockets需要双向通信,确保连接到所有资源(EC2和ALB)的安全组允许在所需端口上进行入站和出站通信。
- 如何通过Elasticbeanstalkconfiguration文件(使用Docker)访问环境variables?
- 在Dockerrun源码包中部署AWS Elastic Beanstalk Docker部署中的ebextensionsconfiguration的位置?
- 如何设置运行Django的AWS Elastic Beanstalk Docker平台?
- Elastic Beanstalk和Docker启动错误
- 如何连接AWS ElasticBeanstalk中的多个Docker容器?
- 在Dockerrun.aws.json中做什么“日志logging”?
- 什么导致EB cli将文件名称1(app-123456-654321.zip)与文件名称2(9f1b.zip)打包在一起?
- 将Docker容器部署到AWS时,是否还需要部署自己的反向代理?
- 如何在Elastic Beanstalk多容器docker上使用fluentd日志驱动程序