一尘不染

如何使带HTTPS / SSL的Amazon ELB与Web套接字配合使用?

node.js

目前看来这似乎行不通。我在Amazon
ELB后面使用Faye和NodeJS。当我打开HTTPS时,连接不再可以代理。我在这里找不到未解决的问题:https
:
//forums.aws.amazon.com/message.jspa?
messageID
=283293。任何人都可以使它正常工作吗?在运行我自己的HAProxy实例之外,是否还有其他工作?


阅读 194

收藏
2020-07-07

共1个答案

一尘不染

根据我们自己的测试,我确认在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/

2020-07-07