Aws路由到不同的ELB

使用aws工具,根据URI将stream量路由到不同的EC2实例的最佳方式是什么? 例如:

www.website.com/login – > EC2实例1 www.website.com/backoffice – > EC2实例2

我知道我可以把一个nginx,并通过它路由所有传入的互联网stream量,但有没有更简单的解决scheme?

ELB不支持根据路径(或任何其他请求参数)将HTTP请求路由到不同的后端。 预计所有ELB的后端都能够满足所有的请求。

使用AWS组件进行“无服务器”的唯一方法是在ELB之后不使用Nginx或HAProxy之类的东西,也不需要重定向到不同的子域,为每个独立的应用服务器集合创建一个ELB,然后使用CloudFront为整个网站。 CloudFront允许您声明多个原始服务器(每个ELB一个),然后使用缓存行为路径模式来确定将哪个路径路由到哪个源(在本例中是哪个ELB)。

请注意,即使您不需要缓存(可以选择禁用),这对于CloudFront来说也是非常有效的用例。

作为奖励,这也使得将存储在S3中的静态内容集成到您的站点变得非常简单,因为您也可以将一个或多个S3存储桶声明为原始服务器,并且CloudFront将直接将请求发送到S3以获得匹配的路径。

通常的做法是有两个ELB,并使用子域名将流量路由到其特定的ELB:

www.website.com/login -> login.website.com www.website.com/backoffice -> backoffice.website.com 

如果需要,实例可以重定向到站点上的特定文件夹。 同样,现有网站可以重定向到子域特定的URI。