我叫迭戈,这是我在网站上的第一个问题。我是阿根廷人,对不起,我的英语不好。
四个月前,我被引入了Amazon Web Services(AWS),并与EC2,S3,Route53,IAM等服务一起工作。
现在,我有下一种情况:
在Route53中,我注册了指向第一个EC2的 domain.com (网站位于端口80 上的网站),并且webapp在第二个EC2上运行端口3000 。
搜索并阅读了很多天后(我将在帖子末尾提供链接),我来到这里是为了解决疑问。
问题如下:
当我访问 domain.com 时,我将进入网站,因此,有些路径例如 / home,/ services,/ ourworks,/ team等。将成为其中的一部分。但是...如果酒吧后面的单词不是其中之一,我需要将用户发送到端口3000 上的第二个EC2,即网络应用。之后,Web应用程序将知道如何处理路由。
所以...
路由这种情况的最佳方法是什么?
我已阅读以下内容:
-使用 .htaccess 路由路径和端口。在上一个场景中,当该网站是Wordpress网站时,这很好,但是现在该网站基于React和Nodejs,因此,我们不再使用Apache,因此该解决方案对我来说毫无用处。
-使用应用程序负载平衡器(ALB)的路由。很好,但是这项服务的价格太昂贵了,所以我现在不能使用它。
-使用 API网关服务的路由,但是在阅读很多之后,我找不到有关如何使用API网关直接路由到EC2服务器的官方文档。所有文档都谈到了REST API或带有WebSocket的API,以及DynamoDB或Lambda服务。这些都不对我有用。我不明白如何使用API Gateway。
-在 domain.com 指向的EC2上使用 NGINX ,并从该位置开始路由。这也许是一个很好的解决方案,但我从未使用过该软件。
所以,我现在很困惑。 任何人都可以告诉我哪个是解决我的问题的最佳解决方案,为什么?,我将非常感谢。
这些天我读过的链接:
-Redirecting with htaccess to nodejs app(我不知道使用Apache是否是一个好的解决方案)
-https://www.reddit.com/r/aws/comments/71lz5v/applications_routing_based_on_url/(这是Reddit上的好帖子)
-https://aws.amazon.com/es/blogs/aws/new-host-based-routing-support-for-aws-application-load-balancers/(使用ALB并花很多钱,哈哈)
-AWS Route 53 - Domain name route to different ports of an Application load balancer(ALB的更多内容,但这很有趣)
-https://forums.aws.amazon.com/thread.jspa?threadID=152643(这与我的情况最相似,但可怜的人,从未得到答案)
好,感谢大家的阅读,如果我违反了论坛上的任何规定,请原谅我。再见! :)
答案 0 :(得分:0)
来自哥伦比亚的问候=)
我的最佳建议是将Nginx放在这些EC2实例上,并用作代理或负载均衡器,最好的方法是甚至可以在同一EC2实例中运行应用程序的多个进程的方法。使用Nginx更好的可伸缩性并平衡负载,以下是完成此设置的两篇文章:
https://nodesource.com/blog/running-your-node-js-app-with-systemd-part-1/ https://nodesource.com/blog/running-your-node-js-app-with-systemd-part-2/
还有其他一些方法,如您所描述的,它们的方法更为复杂,但我认为这是最简单,最便宜的方法。