我有一个在端口80上运行的node.js应用服务器,我最近通过端口9001上的Primus websockets转换器添加了实时消息。
它在单个实例中运行良好。我使用以下配置将消息传递部署到Beanstalk环境。
AWS Elastic Beanstalk
Platform version v2.0.0
Nodejs version v0.12.6
Primus version v4.0.5
但客户端请求未到达实例并且连接超时。有没有人在AWS ELB后面使用带有websockets的primus? 请让我知道在Elastic Beanstalk背后启用websockets通信的配置。
答案 0 :(得分:0)
我设法使用下面的配置使用websocket(https://github.com/websockets/ws)在ELB上的端口80和8080上工作。并且没有启用代理协议。
安全组:
负载均衡器监听器:
容器选项:
负载均衡器:
答案 1 :(得分:0)
你需要做两件事
增加ELB上的空闲超时
在EC2仪表板上,触及Load Balancer设置并打开负载均衡器的“描述”选项卡。查找设置“空闲超时”,输入类似“600”(10分钟)的内容
定期Ping
每5分钟(或其他,但需要低于ELB上的空闲超时)实施WS ping。如果primus对其API没有支持,请自己向客户端发送虚拟消息。