AWS Elastic Beanstalk上带有socket.io的Websockets

时间:2013-04-09 16:22:21

标签: websocket elastic-beanstalk

我正在尝试在AWS Elastic Beanstalk上使用socket.io设置websocket-server。初始请求/socket.io/1/?t=xxxx启动并运行但websocket握手失败并出现此错误:

WebSocket connection to 'ws://xxxxxx.elasticbeanstalk.com/socket.io/1/websocket/a4DTCN2BeJZuiSaphVyz' failed: Unexpected response code: 502 

从谷歌搜索并查看错误502(坏网关)它似乎与nginx-proxy有关。那么如何配置nginx以使用websockets?

在AWS文档中找不到有关设置websockets的任何内容。

3 个答案:

答案 0 :(得分:28)

您可以尝试解决配置nginx的问题,但如果您只使用websockets,则关闭所有代理并直接连接会更容易。

这是在弹性beanstalk仪表板中的应用程序环境下。标有“动作”的右侧有一个下拉按钮。选择“编辑/加载配置”

enter image description here

答案 1 :(得分:3)

ditch-nginx方法存在明显的缺点。您必须将https移动到节点以及socket.io调用。在服务器配置中而不是在节点中管理https要容易得多。

如果您不需要https,我建议转储代理并直接转到节点。

答案 2 :(得分:3)

Socket.io默认为端口8080.通过添加" Inbound>确保EC2安全组上已启用端口8080。自定义TCP规则"在AWS Admin>中EC2>安全组。