AWS ELB return 404 用于 https://domain_name:8000 但可通过 public_ip:8000 访问

AWS ELB return 404 for https://domain_name:8000 but accessible via public_ip:8000

我是在 AWS 上部署 Web 应用程序的初学者,我相信我遇到了与 AWS forward port 8000 from elb to port 8000 of EC2 类似的问题,我在 aws 上有一个 reactjs 前端和 golang api 运行 ec2 和 golang api 在端口 8000 上 运行 可以通过我的 public_ip:8000 访问,并给我消息说我的 golang api 在我访问 public_ip:8000 时可以运行.我使用弹性 IP 创建了 public_ip。

我使用负载平衡器来获取 HTTPS,因为我有某些功能只能使用 HTTPS。但是,当我使用我的 https://domain_name:8000 向我自己的 API 发送请求时,它说它不存在并且在我使用 Application Load Balancer 时给我 404 错误。

我的域名使用 AWS 的 Route 53 和 AWS 域名服务器,应该没有问题,因为我被正确定向到我的普通域。我也添加了一条指向我的负载均衡器的 A 记录。

我检查了使用的安全组,并打开了我的 IP 地址的端口。

我的实例状态检查:

以下是我如何配置应用程序负载均衡器的目标组: 对于我的听众,我使用 HTTP 80、HTTPS 443 和 HTTPS 8000 转发到我的目标组。

我已经尝试使用 link 中提到的经典负载平衡器,但是当我使用我的 domain_name.

时它们都会超时

任何人都知道更好的连接方式或在 AWS 上构建我的 reactjs 前端和 golang 后端应用程序的更好方式,可能需要打开其他端口以供 api 访问。

我的经典负载均衡器端口转发配置:

编辑:我注意到问题可能是我的目标组,因为它说端口 8000 不健康并且请求超时

找出端口需要很长时间,google 搜索的 none 或 AWS 文档很有帮助,所以我将我的 reactjs 前端放在端口上的一个 EC2 实例中 运行 80 和我的 server/golang API 连接到端口 80 上的另一个 EC2 实例 运行,然后设置应用程序负载均衡器转发到带有前端的目标组,如果 HTTP:80 或 HTTPS:443 被调用并使用 golang API 转发到目标组,如果 HTTPS:8000 被调用。

确保实例与负载均衡器位于同一可用区,否则它将无法正常工作并确保一切正常。