目前看来这似乎行不通。我在Amazon ELB后面使用Faye和NodeJS。当我打开HTTPS时,连接不再可以代理。我在这里找不到未解决的问题:https : //forums.aws.amazon.com/message.jspa? messageID =283293。任何人都可以使它正常工作吗?在运行我自己的HAProxy实例之外,是否还有其他工作?
根据我们自己的测试,我确认在Web / Sockets上可以成功地在TCP / SSL上配置ELB,而不是在HTTP / HTTPS上配置ELB。缺点有两个:
1)正如arturnt指出的那样,您不会发粘。
2)您将失去检索客户端身份的能力。WebSocket服务器看到的原始IP始终是ELB,与HTTP / HTTPS配置不同,不会将X-Forwarded- For标头添加到请求中。
2013年7月更新 :亚马逊刚刚添加了对 代理协议的 支持,该 协议 解决了上述第二个缺陷。使用代理协议,即使ELB在TCP级别(而不是HTTP)下工作,也会添加包含客户端原始IP的标头。完整详细信息: http : //docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy- protocol.html
2016年8月更新 :亚马逊刚刚宣布了新的 AWS Application Load Balancer ,它在第7层支持WebSocket(以及HTTP / 2.0和基于内容的路由)。参见 https://aws.amazon.com/it/blogs/aws/new-aws-application-load- balancer/