AWS 是否提供了一种基于目录路径将 HTTPS 流量路由到两个不同 EC2 实例的方法?

Jos*_*hih 11 amazon-web-services apache2

我想知道 AWS 产品是否可以实现以下功能?

https://www.example.com/a/-> 由 Apache 在EC2 实例 A 上提供服务

https://www.example.com/b/-> 由 Apache 在EC2 实例 B 上提供服务

澄清一下,我不希望一个目录路径下的文件与另一个目录路径下的文件位于同一服务器实例上。

我知道这可能通过某种代理来实现,但是否有一种更简单的 AWS 产品解决方案。

EC2负载均衡似乎并没有让基于切换的目录路径。Route 53在 DNS 级别工作,它没有基于此返回 IP 的路径信息。

Tim*_*Tim 29

使用AWS Application Load Balancer,它执行基于路径的路由。第二个链接是如何操作的教程。

简而言之,您可以正常设置 ALB,然后按照以下步骤操作(从 AWS 教程中复制):

  • 侦听器选项卡上,使用箭头查看侦听器的规则,然后选择添加规则。指定规则如下:

  • 对于Target group name,选择您创建的第二个目标组。

  • 对于路径模式,指定用于基于路径的路由的确切模式(例如,/img/*)。有关更多信息,请参阅侦听器规则。

  • 选择保存


Zac*_*ton 9

除了 Tim 的出色回答之外,您还可以使用CloudFront实现这一点。

首先,创建您的分配,为 EC2 实例 A 和 EC2 实例 B(也可以是负载均衡器、非 AWS 主机甚至 S3 存储桶)添加源。

然后,设置缓存行为规则以将 /a/* 和 /b/* 映射到适当的来源。

为此目的使用 CloudFront 是否有意义取决于您的应用程序和对 CDN 的需求。

  • 如果您希望 `/a*` 和 `/b*` 由不同的服务、不同的账户、不同的区域处理,或者甚至是由 AWS 内部运行的某物处理而另一条路径由其他地方处理的一条路径,则这也适用。CloudFront 有许多在概念上根本不需要 CDN 的用例。 (4认同)