【问题标题】:Which is the best way to route paths on AWS?在 AWS 上路由路径的最佳方式是什么?
【发布时间】:2019-08-10 12:00:59
【问题描述】:

我的名字是 Diego,这是我在网站上提出的第一个问题。我是阿根廷人,所以,对不起我的英语不好。

四个月前我被介绍到 Amazon Web Services (AWS),我曾使用过 EC2、S3、Route53、IAM 等服务。

现在,我有下一个场景:

  • 一个 EC2 (1),一个基于 React(前端)和 Node.js(后端)的网站
  • 一个 EC2 (2),带有一个基于 React Native 和 Express.js 的 web 应用程序

在 Route53 中,我注册了指向第一个 EC2 的 domain.com(网站,在 端口 80 上),并且 webapp 在第二个 EC2 上运行端口 3000

经过几天的搜索和阅读(我会把链接放在帖子末尾)我来这里解决疑问。

问题如下:

当我访问 domain.com 时,我会进入网站,因此,一些路径如 /home、/services、/ourworks、/team 等。 将成为其中的一部分。但是……如果bar后面的不是这个的话,我需要把用户发送到第二个EC2的port 3000,也就是网络应用。之后,webapp 就会知道如何处理路由。

所以...

路由此场景的最佳方式是什么?

我读过:

-使用 .htaccess 来路由路径和端口。在上一个场景中这很好,当时网站是一个 Wordpress 网站,但现在网站基于 React 和 Nodejs,所以我们不再使用 Apache,所以这个解决方案对我来说没用。

-使用 Application Load Balancer (ALB) 的路由。这很好,但是这个服务的价格太贵了,所以我现在不能用这个。

-使用API Gateway服务的路由,但是看了很多,找不到官方文档说明如何使用API​​ Gateway直接路由到EC2服务器。所有文档都谈到 API REST 或带有 WebSockets 的 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(这是和我最相似的场景,但是可怜的人,从来没有得到答案)

好的,感谢大家的阅读,如果我违反了论坛上的任何规则,请原谅我。再见! :)

【问题讨论】:

    标签: node.js amazon-web-services amazon-ec2 path routing


    【解决方案1】:

    来自哥伦比亚的问候 =)

    我最好的建议是将 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/

    您所描述的方法还有其他更复杂的方法,但我认为这是最简单和最便宜的方法。

    【讨论】:

    • 感谢您的快速回复!我今晚会读那些帖子。同时,我只有一个问题:为什么你说要放置 两个 NGINX 实例?每个 EC2 中一个?我认为第一个 EC2 中的一个 NGINX 实例足以路由所有。或者您之所以这么说是因为将 NGINX 视为两个应用程序的负载均衡器?
    • 没错,我的想法是为应用程序启动多个进程,然后让 NGINX 平衡所有正在运行的进程之间的负载
    猜你喜欢
    • 2012-10-14
    • 2020-11-26
    • 1970-01-01
    • 2022-10-01
    • 2013-06-13
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    相关资源
    最近更新 更多