我想知道 AWS 产品是否可以实现以下功能?
https://www.example.com/a/
-> 由 Apache 提供EC2 实例 A
https://www.example.com/b/
-> 由 Apache 提供EC2 实例 B
需要澄清的是,我不希望一个目录路径下的文件与另一个目录路径下的文件位于同一个服务器实例上。
我理解使用某种代理可以实现这一点,但是有没有更简单的 AWS 产品解决方案呢?
这EC2 负载均衡器似乎不允许基于目录路径进行切换。53 号公路在 DNS 级别工作,没有路径信息来基于该路径返回 IP。
答案1
使用AWS 应用程序负载均衡器,确实基于路径的路由。第二个链接是关于如何操作的教程。
简而言之,您正常设置 ALB,然后按照以下步骤操作(从 AWS 教程中复制):
在听众选项卡,使用箭头查看侦听器的规则,然后选择添加规则. 指定规则如下:
为了目标群体名称中,选择您创建的第二个目标组。
为了路径模式指定用于基于路径的路由的确切模式(例如,/img/*)。有关更多信息,请参阅侦听器规则。
选择节省。
答案2
除了 Tim 的出色回答之外,您还可以通过以下方式实现此目的CloudFront。
第一的,创建您的分发,添加 EC2 实例 A 和 EC2 实例 B 的来源(也可以是负载均衡器、非 AWS 主机,甚至是 S3 存储桶)。
然后,设置缓存行为规则将 /a/* 和 /b/* 映射到适当的来源。
是否有必要为此目的使用 CloudFront 将取决于您的应用程序和对 CDN 的需求。