【发布时间】:2014-11-02 00:48:05
【问题描述】:
如何通过 ELB 通过 ssl 连接到由 GlassFish 在 Amazon AWS EC2 实例上提供的 websocket?
我在 GlassFish 4.1 b13 预发行版中使用 Tyrus 1.8.1 作为我的 websocket 实现。
端口 8080 不安全,端口 8181 使用 ssl 保护。
- ELB dns 名称:elb.xyz.com
- EC2 dns 名称:ec2.xyz.com
- websocket 路径:/web/socket
我已成功使用 ws 和 wss 直接连接到我的 EC2 实例(绕过我的 ELB)。即以下两个网址都有效:
- ws://ec2.xyz.com:8080/web/socket
- wss://ec2.xyz.com:8181/web/socket
我已通过使用 tcp 80 > tcp 8080 侦听器在 ELB 上成功使用 ws(非 ssl)。即以下网址有效:
- ws://elb.xyz.com:80/web/socket
但是,我无法通过我的 ELB 找到使用 wss 的方法。
我尝试了很多东西。
我假设让 wss 通过我的 ELB 工作的最可能的方法是在启用代理协议的我的 ELB 上创建一个 tcp 8181 > tcp 8181 侦听器并使用以下网址:
- wss://elb.xyz.com:8181/web/socket
不幸的是,这不起作用。我想我可能必须在 glassfish 上启用代理协议,但我无法找到如何做到这一点(或者是否有可能,或者 wss 是否有必要在我的 ELB 上工作)。
另一种选择可能是通过使用 ssl > tcp 8080 侦听器以某种方式让 ws 或 wss 在 ELB 上终止的 ssl 连接上运行,并使其继续不受 glassfish 的保护。这对我也不起作用,但可能某些设置不正确。
有人对我前面提到的两个试验有任何修改吗?或者有人有其他建议吗?
谢谢。
【问题讨论】:
-
早上好,我正在尝试在 php 中的亚马逊 ec2 服务器上运行 Web 服务,所以你提到你可以告诉我你是如何实现它以获得参考的,这对我有很大帮助我的电子邮件是 elvis1527@gmail.com
标签: ssl websocket glassfish wss amazon-elb