我是在AWS上部署Web应用程序的初学者,我相信我与AWS forward port 8000 from elb to port 8000 of EC2有类似的问题,其中我在AWS ec2上运行了reactjs前端和golang api,而golang 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名称服务器,并且不会出现任何问题,因为我可以正确地定向到我的普通域。我还添加了一个指向我的负载均衡器的记录。
我已经检查了使用的安全组,并已将端口打开到我的IP地址。
我的实例状态检查:
以下是我如何配置应用程序负载平衡器的目标组:
对于我的听众,我已经使用HTTP 80,HTTPS 443和HTTPS 8000转发到我的目标组。
我已经尝试使用链接中提到的经典负载均衡器,但是当我使用domain_name时,它们全部超时。
任何人都知道在AWS上可能需要打开其他端口以进行api访问的更好的连接方式或更好的结构化我的reactjs前端和golang后端应用程序的方法。
我的经典负载均衡器端口转发配置:
编辑:我注意到问题可能是我的目标组,因为它说端口8000不健康,并且请求超时
最佳答案
花费大量时间来找出端口,而Google搜索或AWS文档都无济于事,因此我将我的reactjs前端放在一个在端口80上运行的EC2实例中,并将我的服务器/ golang API放在另一个在端口80上运行的EC2实例中,然后如果调用HTTP:80或HTTPS:443,则将Application Load Balancer设置为使用前端转发到目标组,如果调用HTTPS:8000,则使用golang API转发到目标组。
确保实例与负载均衡器位于相同的可用区域中,否则实例将无法正常工作,并且还确保一切正常。
关于reactjs - AWS ELB返回https://domain_name:8000的404,但可通过public_ip:8000访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56329518/