node.js - 如何在 ELB 内部设置 SSL 并与 ELB 外部的 Node 实例通信

标签 node.js amazon-web-services ssl amazon-ec2 amazon-elb

我通过使用 ELB、自动缩放、RDS 和 ELB 外部的一个 Node ec2 实例在 AWS 上创建了一个架构(希望它不会错)。现在我不明白,我可以如何在此架构上实现 SSL。

让我简要解释一下:

  1. 我已经创建了一个 Classic Load Balancer。
  2. 在自动缩放组中创建。
  3. 将实例分配给自动缩放组。
  4. 最后,我创建了一个用于 Node 的实例,它位于负载均衡器和自动缩放组之外。

现在,当我对我的负载均衡器实现 SSL 时,内部实例正在与 HTTP 请求上的 Node 实例通信,并且因为 Node 实例在负载均衡器之外,所以请求被阻止。

谁能帮我为这个架构实现 SSL。

抱歉,如果您对我的架构感到困惑,如果有任何其他可能的最佳架构,请告诉我我可以更改我的架构。

谢谢,

最佳答案

当您有静态内容时,最好的办法是使用 S3 存储桶作为来源,从 Cloudfront 提供它。

关于SSL,您可以在ELB级别设置SSL,关注the documentation .

您的ELB 监听两个端口:80443 并仅使用其开放端口 80 与您的 ASG 实例通信。 因此,当安全请求到达 ELB 时,它将它们转发到您的服务器(ASG 中的 EC2)。然后,您的服务器监听端口 80,接收请求;如果请求有 X-FORWARDED-PROTO HTTPS,服务器什么都不做,否则它会设置它并转发/重写 URL 为安全的 URL,然后进程重新启动。

我希望这会有所帮助并注意 ERR_TOO_MANY_REDIRECTS

关于node.js - 如何在 ELB 内部设置 SSL 并与 ELB 外部的 Node 实例通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45750642/

相关文章:

python - 使用 boto 在 amazon mechanical turk 中将 HIT 分组?

amazon-web-services - 在 AWS/Azure 中运行但需要访问 GCLOUD 命令的容器化应用程序中,设置 gcloud 身份验证的最佳方法是什么?

sql-server-2005 - 使用 Wireshark 检查通过 SSL 的 SQL 连接的加密握手

android - 将根证书添加到 Android 操作系统

node.js - 如何使用Youtube API获得通过videoCategoryId过滤的喜欢的视频

javascript - Promise 只解析数组中大约一半的文件

javascript - 有没有办法有条件地更改 package.json 中的主条目文件?

javascript - 如何检查路径是目录还是文件?

amazon-web-services - CodePipeline (AWS) 的 CodeBuild (AWS) 不工作

c# - 错误: 'ID1039: The certificate' s private key could not be accessed