如何在 ec2 上托管 React 和 django 应用程序

问题描述 投票:0回答:1

我有一个带有 Django 后端和 mysql 数据库的 React 应用程序。我想在 ec2 上托管这个网站。我还购买了一个域名。目前,我正在 ec2 实例上运行 React 服务器和 Django 服务器,并且我可以使用分配给该实例的弹性 IP 地址(例如 public-address:3000)访问该网站。

我希望能够将域与 ec2 实例链接。我已将我的域配置为使用 DNS 链接到我的实例,但问题是 React 服务器在 ec2 实例的本地主机上运行,当我访问该域时,我无法查看该网站。

有人可以帮我解决这个问题吗

reactjs django amazon-web-services amazon-ec2
1个回答
0
投票

您的应用程序在端口 3000 上运行,这就是您在使用 EIP:3000 时可以访问它的原因。这同样适用于域,但您必须提及端口,例如

http://<domain-name>:3000
。虽然您可以更改应用程序配置以在端口 80 上运行,但建议让一些“中间人”为您完成这项工作。您可以在同一实例上使用 NGINX 反向代理来侦听端口 80,然后将其转发到您的应用程序的端口 3000。

如果安全性是您的首要任务(也应该如此),建议通过应用程序负载均衡器或 CloudFront(如果您的客户是全球性的)公开应用程序。在这两个选项中,您都可以使用 ACM(证书管理器)从 AWS 获取您的域的免费证书。

对于 ALB,请使用 link 进行设置。步骤如下:

  1. 导航到 EC2 控制台
  2. 单击负载均衡器下的目标组
  3. 单击创建目标组并选择选项
    • 目标类型 - 实例
    • 目标协议 - HTTP
    • 目标端口 - 3000
  4. 单击下一步,然后选择要添加到此目标组的 EC2
  5. 导航到您所在区域的 ACM 并请求涵盖您的域的证书 link
  6. 继续创建负载均衡器,如链接中所述。对于侦听器,请使用 HTTP:80 和 HTTPS:443 以及您创建的证书
© www.soinside.com 2019 - 2024. All rights reserved.