繁体   English   中英

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

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

我想问一下如何配置Node.js(后端/服务器)以接受来自客户端(前端)的HTTPS请求。

我们做了什么。

  • 在AWS中注册的域名。
  • 项目清单
  • 在ACM中请求的SSL。
  • 在S3中创建存储桶,并将我们的前端代码(角度5)存储在其中。
  • 在Cloud Front中创建了分发,并将我们的自定义SSL放到那里,并连接到S3中的存储桶。
  • 我们还设置了ec2实例,并将后端代码(节点js)存储在此处。
  • 在前端代码中,我们连接到ec2实例的ip,以便可以连接到后端。

问题:

  • 前端无法访问ec2实例中的后端,因为前端是https,后端是http(我们不知道如何在AWS EC2实例中将其从http配置为https)。
  • 您知道如何在前端和后端代码分开的AWS中设置Web应用程序吗?
  • 我们错过了什么?

我们错过了什么?

如果我正确理解,则您有一个提供角度服务的Cloudfront发行版,然后尝试连接到EC2实例-我认为EC2的IP地址或公共DNS条目已硬编码为角度代码。

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

您应该这样做的是。

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

(这是一种非常简单的处理方式,使您的EC2可以访问互联网等)。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM