登录
首页 >  Golang >  Go问答

AWS ELB 强制 HTTPS 重定向导致 https://domain_name:8000 返回 404,但可通过 public_ip:8000 访问

来源:stackoverflow

时间:2024-03-07 12:18:25 145浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《AWS ELB 强制 HTTPS 重定向导致 https://domain_name:8000 返回 404,但可通过 public_ip:8000 访问》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我是在AWS上部署Web应用程序的初学者,我相信我有一个与AWS将端口8000从elb转发到EC2的端口8000类似的问题,其中我有一个reactjs前端和在aws ec2和golang上运行的golang api api 正在端口 8000 上运行,可以通过我的 public_ip:8000 访问该端口,并在我访问 public_ip:8000 时向我发送消息,说明我的 golang api 可以运行。我使用弹性 IP 创建了 public_ip。

我使用负载均衡器来获取 HTTPS,因为我有某些功能仅适用于 HTTPS。但是,当我使用 https://domain_name:8000 向我自己的 API 发送请求时,它说它不存在,并在我使用应用程序负载均衡器时给出 404 错误。

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

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

我的实例状态检查:

以下是我配置 Application Load Balancer 目标组的方法: 对于我的侦听器,我使用 HTTP 80、HTTPS 443 和 HTTPS 8000 转发到我的目标组。

我已尝试使用链接中提到的经典负载均衡器,但当我使用我的域名时,它们都会超时。

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

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

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


解决方案


花了很长时间才弄清楚端口,并且谷歌搜索或AWS文档都没有帮助,所以我将我的reactjs前端放入在端口80上运行的一个EC2实例中,并将我的服务器/golang API放入在端口上运行的另一个EC2实例中80,然后设置应用程序负载均衡器,以便在调用 HTTP:80 或 HTTPS:443 时使用前端转发到目标组,并在调用 HTTPS:8000 时使用 golang API 转发到目标组。

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

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>