如何配置 AWS EC2 实例中的 Nodejs 以接受来自客户端的 HTTPS 请求

How to configure Nodejs that is in AWS EC2 Instance to accept HTTPS request from client side

我想问一下如何配置 Nodejs (backend/server) 以接受来自客户端(前端)的 HTTPS 请求。

我们做了什么。

问题:

What did we missed?

如果我没理解错的话,你有一个服务于 angular 的 Cloudfront 分布,然后它正在尝试连接到 EC2 实例 - 我假设 EC2 的 IP 地址或 public DNS 条目是hard-coded 进入 angular 代码。

这不是一个好的安排 - 如果您的 EC2 出现故障或 IP 地址发生变化,您将需要将新站点推送到 S3 - 然后此更改将需要时间才能通过 Cloudfront 传播。

你应该做的是这个。

  1. 创建应用程序负载均衡器
  2. 创建目标组并将您的 EC2 添加到该目标组。
  3. 在 ALB 上添加一个侦听器,侦听您的 Web 应用程序连接的端口,并使用转发到 back-end EC2 的 HTTP 端口的规则。
  4. 为 ALB 添加 route 53 DNS 别名记录(因为 ALB 有时会消失或更改其 IP 地址)
  5. 更改您的 front-end 代码以指向 Route 53 别名记录。

(这是一种非常简单的做事方式,让您的 EC2 对互联网等开放)。

您还应该认真考虑将您的 EC2 放入一个至少跨越两个可用性区域的自动缩放组,并设置其最小大小以确保至少有服务器在任何时候 运行。

AWS EC2 实例可以随时消失,当它们消失时,您的应用程序也会随之消失。