gpt4 book ai didi

amazon-web-services - EC2 实例中的 API 成功使用端口 5000,但是当从负载均衡器到达时,端口不工作

转载 作者:行者123 更新时间:2023-12-04 22:43:04 25 4
gpt4 key购买 nike

我在 Ubuntu Server 20.04 LTS 中创建了一个 EC2 实例。
我在我的服务器上上传了我的 Flask API 并通过 保持服务tmux (如果你需要它,我是这样做的:https://www.twilio.com/blog/deploy-flask-python-app-aws 但不是端口 8080,而是端口 5000)。
由于将我的 API 放在服务器中,我已经对其进行了测试,因此每个端点都可以正常工作。
我的下一步是使用 Route 53 和证书管理器创建一个域、该域的 SSL 证书,并添加 CNAME 记录:
enter image description here
enter image description here
我知道我可以从我的域成功访问我的 API 的第一件事是使用该域的 ip 创建一个简单的 A 记录(顺便说一句,我为那个 EC2 实例设置了一个弹性 IP)。
到目前为止一切顺利,我可以使用 http://mydomain:5000成功到达我的 API。那里没有问题,端点仍在正常工作。
然后我遇到的问题(我不知道,因为我在使用证书管理器添加 SSL 证书方面很新)是,即使颁发了证书,它也没有真正投入“使用”。我发现这并不容易,接下来我需要做的是将证书链接到我的 EC2 实例,CNAME 记录还不够。
我搜索了如何做到这一点,我遇到了一些挫折并且有点气馁,因为许多指南都关于使用 S3 或者没有提到 EC2 实例,但我找到了一个并遵循了它,这里是:https://youtu.be/bWPTq8z1vFY?t=533 (关于负载均衡器的部分不到 3 分钟)。
我按照该教程创建了负载均衡器。一个应用程序负载均衡器 (HTTP/HTTPS),面向 Internet,可用区包括我的 EC2 实例所在的那个,选择了我的 SSL 证书(它实际上是我唯一拥有的),负载均衡器处于相同的安全性分组为我的 EC2 实例(我什至 Ctrl Fed 检查它是否是相同的字符串),并且我有 2 个监听器:HTTP 和 HTTPS:
enter image description here
下一部分是将我的简单 A 记录仅使用 ip 地址(因为那只是 HTTP,但 HTTPS 不起作用)更改为负载均衡器的简单 A 记录。我删除了我首先创建的那个
即使屏幕略有不同(虽然是从 2020 年开始,AWS 刚刚更新了 UI),但我在添加新的 A 记录时是这样的:
enter image description here
这是最终结果:
enter image description here
在等待几分钟等待更新准备好后,我尝试使用 https://mydomain:5000 到达我的端点但请求失败。
这是与之前尝试访问 my_ip_address:5000 时的不同之处。或 http:mydomain:5000出现了这条消息,这是有道理的,因为当我到达 API 时没有任何东西可以返回(这是完全正常的行为):
enter image description here
但现在它说我无法访问该站点:
enter image description here
如果我只输入 https:mydomain,我什至会收到 502 错误(我以前什至没有得到):
enter image description here
此外,这是我的目标群体如何遇到健康问题,我不明白为什么(我仍在学习,可能与配置有关):
enter image description here
同样,这可能与我仍然没有得到的配置有关,因为我的 EC2 实例是健康的:
enter image description here
我不知道如何从这里开始,我一直在寻找线索和其他替代方案,但替代方案甚至更老且过时。
如果您对我应该如何执行此过程有任何替代方案,或者如果我执行此操作的方式有问题,请指导我,我有点卡在这一点上。
提前感谢您的所有帮助。

最佳答案

似乎配置毕竟有问题。
由于我的目标是我的 API 的特定端口,我需要这样做而不是普通端口 80对于 HTTP。
这是需要做的事情,而不是像下图那样设置 HTTP 端口 80:
enter image description here
应该是 Port: 5000就我而言。起初我认为将其保留为 80 是正确的,但我并没有真正将端口 80 用于我的 API。
这实际上非常简单,但对于所有从 AWS 开始的人来说,所有这些配置对你和对我来说都是新的,请小心。
DNS 记录的下一步是将 A 记录保留为 Alias to Application and Classic Load Balancer。并且要访问端点,您不再需要将其设置为 https://mydomain:5000 , 只是 https://mydomain就足够了,因为 Application Load Balancer 已经在处理这个问题了。

关于amazon-web-services - EC2 实例中的 API 成功使用端口 5000,但是当从负载均衡器到达时,端口不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63730577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com