WebSockets:通过ELB从客户端到Amazon AWS EC2实例
我如何通过ELB将ssl连接到由亚马逊AWS EC2实例上的GlassFish提供的websocket?
我在GlassFish 4.1 b13预发布中使用Tyrus 1.8.1作为我的websocket实现。
端口8080不安全,端口8181用ssl进行安全保护。
我已经成功地使用ws&wss直接连接到我的EC2实例(绕过我的ELB)。 即以下两个网址都有效:
我通过使用tcp 80> tcp 8080侦听器成功地在我的ELB上使用了ws(非ssl)。 即以下网址的作品:
然而,我还没有找到通过我的ELB使用wss的方法。
我尝试了很多东西。
我假设通过我的ELB获取wss的最可能方法是在启用代理协议的ELB上创建一个tcp 8181> tcp 8181侦听器,并使用以下url:
不幸的是,这是行不通的。 我想我可能必须在glassfish上启用代理协议,但我一直无法知道如何做到这一点(或者如果有可能,或者需要wss来处理我的ELB)。
另一个选择可能是以某种方式使ws或wss运行在ELB上终止的ssl连接,并通过使用ssl> tcp 8080监听器使其继续对glassfish不安全。 这对我也不起作用,但也许有些设置是不正确的。
有没有人有任何修改我的两个上述审判。 还是有人有其他建议?
谢谢。
我有一个类似的设置,最初配置我的ELB侦听器如下:
虽然这对网站本身运行良好,但websocket连接失败。 在监听器中,您需要允许所有安全的TCP连接,而不仅限于SSL,以允许wss通过:
我也建议提高ELB的空闲超时。
我最近在浏览器和EC2 Node.js实例之间启用了wss。 有两件事需要考虑:
这显然不是最终的解决方案,因为超时仍然存在,但是1小时对于我们通常所做的事情可能足够好。
希望这个帮助
链接地址: http://www.djcxy.com/p/87163.html上一篇: WebSockets: wss from client to Amazon AWS EC2 instance through ELB