我正在尝试在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的任何内容。
答案 0 :(得分:28)
您可以尝试解决配置nginx的问题,但如果您只使用websockets,则关闭所有代理并直接连接会更容易。
这是在弹性beanstalk仪表板中的应用程序环境下。标有“动作”的右侧有一个下拉按钮。选择“编辑/加载配置”
答案 1 :(得分:3)
ditch-nginx方法存在明显的缺点。您必须将https移动到节点以及socket.io调用。在服务器配置中而不是在节点中管理https要容易得多。
如果您不需要https,我建议转储代理并直接转到节点。
答案 2 :(得分:3)
Socket.io默认为端口8080.通过添加" Inbound>确保EC2安全组上已启用端口8080。自定义TCP规则"在AWS Admin>中EC2>安全组。