AWS ELB与WebSocket报错

需求:nginx默认禁止掉websocket调用,但统功能用到了websocket。

nginx 添加以下几行配置:

    location / {
        proxy_pass http://127.0.0.1:7000;
        ##开启websocket调用
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection  "upgrade";
    }

报错信息:


报错信息.png

AWS ELB 原配置如图:


AWS ELB 原配置.png

问题分析:
在 AWS ELB中,使用的是http和https协议,但 AWS ELB却不支持WebSocket协议(仅支持HTTP, HTTPs, TCP and SSL.)并且没有任何消息表示ELB支持的HTTP和HTTPS协议可以支持WebSocket。当浏览器端向服务端发送消息时,由于ELB拦截掉了请求,且判断协议不是支持的几种,就残忍的抛弃掉了。

解决方案:
AWS WebSocket 基于HTTP协议,而HTTP协议又是基于TCP协议,ELB支持TCP协议,那么可以将ELB配置中HTTP协议改为TCP协议,https改为SSL,如图:


修改后.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • Spring 4.0的一个最大更新是增加了对Websocket的支持。Websocket提供了一个在web应用中实...
    HJ_风阅读 16,511评论 9 49
  • 一在遇到突发事假,我完全不能做到镇定自若。我的历练还是很少,还是需要多多历练啊。 二什么都想做,什么都想看,然而,...
    一只2b兔子阅读 1,243评论 0 0
  • 文:杨飞 我在2016年5月份开通了头条广告和原创标签,但一直都并不太重视这块,主要原因是没有搞清楚规则,并且最低...
    xinmeiyuan阅读 4,442评论 0 2
  • 爱的时候她是她 恨的时候还是她 你说后会有期 我说恕不远送
    张漫阅读 1,702评论 0 0

友情链接更多精彩内容