我目前正在使用 Amazon EC2 并运行 Node.js 应用程序,但是 HTTPS 握手等现在成为瓶颈,所以我想知道这是否可能:
- 2 个 EC2 实例在 HTTP 端口 80 上运行 Node.js(Rest JSON Api)
- Elastic Load Balancer 将所有流量(https)从端口 443 路由到 http 端口 80,并进行加密等
这将大大提高我的 EC2 node.js 服务器的性能,并且一切仍然是安全的,因为只有负载均衡器可以从互联网访问,并且 EC2 实例将私下运行。
感谢帮助
答案1
您可以这样做。我们在生产中使用 Tomcat 来实现这一点。在 ELB 上设置两个侦听器:一个将 80 映射到 80,另一个将 443 映射到 80。您还需要为 HTTPS 侦听器提供 SSL 证书。
这种配置确实没有什么令人反感或奇怪的。只要您的应用可以在 80 上处理两种类型的请求,它就可以正常工作。如果您愿意,它还具有允许您的实例自动扩展的额外优势。
答案2
我不是 EC2 专家,但很多人在其他系统中使用完全相同的模型,例如我们使用 Riverbed 的“Stingray”(以前是 Zeus ZXTM)来做非常相似的事情。试一试,可能发生的最坏情况是什么?