如何配置 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 请求。
我们做了什么。
- 在AWS注册域名。
- 列表项
- 在 ACM 中请求 SSL。
- 在S3中创建bucket,将我们的前端代码(angular 5)存入其中。
- 在云端创建分发并将我们的自定义 ssl 放在那里并连接到 S3 中的存储桶。
- 我们还设置了 ec2 实例并将我们的后端代码 (node js) 存储在那里。
- 在我们的前端代码中,我们连接到 ec2 实例的 ip,以便我们可以连接到后端。
问题:
- 前端无法访问ec2实例中的后端,因为前端是https,后端是http(我们不知道如何在AWS EC2实例中配置从http到https)。
- 你知道如何在前后端代码分离的aws中设置web应用程序吗?
- 我们错过了什么?
What did we missed?
如果我没理解错的话,你有一个服务于 angular 的 Cloudfront 分布,然后它正在尝试连接到 EC2 实例 - 我假设 EC2 的 IP 地址或 public DNS 条目是hard-coded 进入 angular 代码。
这不是一个好的安排 - 如果您的 EC2 出现故障或 IP 地址发生变化,您将需要将新站点推送到 S3 - 然后此更改将需要时间才能通过 Cloudfront 传播。
你应该做的是这个。
- 创建应用程序负载均衡器
- 创建目标组并将您的 EC2 添加到该目标组。
- 在 ALB 上添加一个侦听器,侦听您的 Web 应用程序连接的端口,并使用转发到 back-end EC2 的 HTTP 端口的规则。
- 为 ALB 添加 route 53 DNS 别名记录(因为 ALB 有时会消失或更改其 IP 地址)
- 更改您的 front-end 代码以指向 Route 53 别名记录。
(这是一种非常简单的做事方式,让您的 EC2 对互联网等开放)。
您还应该认真考虑将您的 EC2 放入一个至少跨越两个可用性区域的自动缩放组,并设置其最小大小以确保至少有服务器在任何时候 运行。
AWS EC2 实例可以随时消失,当它们消失时,您的应用程序也会随之消失。
我想问一下如何配置 Nodejs (backend/server) 以接受来自客户端(前端)的 HTTPS 请求。
我们做了什么。
- 在AWS注册域名。
- 列表项
- 在 ACM 中请求 SSL。
- 在S3中创建bucket,将我们的前端代码(angular 5)存入其中。
- 在云端创建分发并将我们的自定义 ssl 放在那里并连接到 S3 中的存储桶。
- 我们还设置了 ec2 实例并将我们的后端代码 (node js) 存储在那里。
- 在我们的前端代码中,我们连接到 ec2 实例的 ip,以便我们可以连接到后端。
问题:
- 前端无法访问ec2实例中的后端,因为前端是https,后端是http(我们不知道如何在AWS EC2实例中配置从http到https)。
- 你知道如何在前后端代码分离的aws中设置web应用程序吗?
- 我们错过了什么?
What did we missed?
如果我没理解错的话,你有一个服务于 angular 的 Cloudfront 分布,然后它正在尝试连接到 EC2 实例 - 我假设 EC2 的 IP 地址或 public DNS 条目是hard-coded 进入 angular 代码。
这不是一个好的安排 - 如果您的 EC2 出现故障或 IP 地址发生变化,您将需要将新站点推送到 S3 - 然后此更改将需要时间才能通过 Cloudfront 传播。
你应该做的是这个。
- 创建应用程序负载均衡器
- 创建目标组并将您的 EC2 添加到该目标组。
- 在 ALB 上添加一个侦听器,侦听您的 Web 应用程序连接的端口,并使用转发到 back-end EC2 的 HTTP 端口的规则。
- 为 ALB 添加 route 53 DNS 别名记录(因为 ALB 有时会消失或更改其 IP 地址)
- 更改您的 front-end 代码以指向 Route 53 别名记录。
(这是一种非常简单的做事方式,让您的 EC2 对互联网等开放)。
您还应该认真考虑将您的 EC2 放入一个至少跨越两个可用性区域的自动缩放组,并设置其最小大小以确保至少有服务器在任何时候 运行。
AWS EC2 实例可以随时消失,当它们消失时,您的应用程序也会随之消失。