我有一个带有 Django 后端和 mysql 数据库的 React 应用程序。我想在 ec2 上托管这个网站。我还购买了一个域名。目前,我正在 ec2 实例上运行 React 服务器和 Django 服务器,并且我可以使用分配给该实例的弹性 IP 地址(例如 public-address:3000)访问该网站。
我希望能够将域与 ec2 实例链接。我已将我的域配置为使用 DNS 链接到我的实例,但问题是 React 服务器在 ec2 实例的本地主机上运行,当我访问该域时,我无法查看该网站。
有人可以帮我解决这个问题吗
您的应用程序在端口 3000 上运行,这就是您在使用 EIP:3000 时可以访问它的原因。这同样适用于域,但您必须提及端口,例如
http://<domain-name>:3000
。虽然您可以更改应用程序配置以在端口 80 上运行,但建议让一些“中间人”为您完成这项工作。您可以在同一实例上使用 NGINX 反向代理来侦听端口 80,然后将其转发到您的应用程序的端口 3000。
如果安全性是您的首要任务(也应该如此),建议通过应用程序负载均衡器或 CloudFront(如果您的客户是全球性的)公开应用程序。在这两个选项中,您都可以使用 ACM(证书管理器)从 AWS 获取您的域的免费证书。
对于 ALB,请使用 link 进行设置。步骤如下: