在同一个域内为请求转发到多个应用程序的架构,有什么实践指导?

0

【以下的问题经过翻译处理】 我在不同的环境中托管了多个网站,例如基于S3的静态HTML,基于Amazon Lightsail的自托管WordPress,基于Elastic Beanstalk的应用程序以及外部网站(例如Wordpress.com/Wix/Webflow)。

我想将所有这些应用程序统一到一个域名下,比如说www.example.com。路由使用请求路径和用户代理。

方案如下所示:

image

例如,如果请求是https://www.example.com/a,它将被转发(而不是重定向)到Site A。如果请求是https://www.example.com/d并使用移动设备访问,它将被转发到Site B,但如果使用桌面设备访问,它将被转发到Site C。当请求为https://www.example.com/sitemap.xml时,它将被转发到存储在S3中的公共文件。

我心中想到的一个解决方案是使用具有路由的ALB。但据我所知,ALB只允许3种目标组:1)实例,2)IP和3)Lambda。因此,我正在考虑针对作为应用程序代理的Lambda进行目标定向。例如下面这样:

image2

我想知道是否有更好的解决方案。

profile picture
专家
已提问 5 个月前21 查看次数
1 回答
0

【以下的回答经过翻译处理】 您可以使用具有多个源和行为的CloudFront分发来实现此操作。您将使用NoCache策略,以便所有请求都会转发到您的源,除了可能是您的S3对象。您将需要使用Lambda@Edge或CloudFront Functions来处理用户代理要求。请参考《使用Amazon CloudFront加速内容》进行了解。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则